要了解网络编程,首先你需要了解客户端/服务器架构,用通俗的语言来讲,服务器相当于一个永远不休息的银行出纳员,而客户端就是一个又一个的客户,服务器给客户端提供相应的服务即为该出纳员为客户办理业务。任何服务器给客户端提供服务前都要创建相应的套接字,这相当于出纳员要求客户写相应的表格,套接字就是一个通信端点。

套接字的历史:套接字的起源可以追溯到 20 世纪 70 年代,它是加利福尼亚大学的伯克利版本 UNIX(称 为 BSD UNIX)的一部分。因此,有时你可能会听过将套接字称为伯克利套接字或 BSD 套接 字。套接字最初是为同一主机上的应用程序所创建,使得主机上运行的一个程序(又名一个 进程)与另一个运行的程序进行通信。这就是所谓的进程间通信(Inter Process Communication, IPC)。有两种类型的套接字:基于文件的和面向网络的。对于上述两种套接字,每个又分为两种类型:面向连接的套接字和没有连接套接字。面向连接的套接字又称为流套接字,从字面意思来看,它需要在进行通信前先建立一个连接,实现这种连接类型的主要协议是传输控制协议(简称TCP),为了创建TCP套接字,必须用SOCKET_STREAM作为套接字类型。无连接的套接字意味 着,在通信开始之前并不需要建立连接。此时,在数据传输过程中并无法保证它的顺序性、 可靠性或重复性,然而它的成本较低,这是它的优点。

下面将给出编写TCP客户端和服务端的大体思路以及具体代码。

服务端:

from socket import *
from time import ctimeHOST=''
PORT=21567
BUFSIZ=1024
ADDR=(HOST,PORT)tcpServerSock=socket(AF_INET,SOCK_STREAM)
tcpServerSock.bind(ADDR)
tcpServerSock.listen(5)while True:print 'waiting for connection...'tcpCliSock,addr=tcpServerSock.accept()print '...connected from:',addrwhile True:data=tcpCliSock.recv(BUFSIZ)if not data:breaktcpCliSock.send('[%s] %s' %(ctime(),data))tcpCliSock.close()tcpSerSock.close()

首先导入所需模块,然后设置服务端的主机地址,端口号以及缓冲区的大小,接下来创建一个TCP套接字,然后将套接字绑定到服务器地址以及开启监听,最后进入服务端的无限循环,等待客户端的连接,一旦连接成功服务端接收客户端发送的消息后开始执行相应的功能并返回给客户端,大致思路就是这样。

客户端:

from socket import *HOST='localhost'
PORT=21567
BUFSIZ=1024
ADDR=(HOST,PORT)tcpCliSock=socket(AF_INET,SOCK_STREAM)
tcpCliSock.connect(ADDR)while True:data=raw_input('> ')if not data:breaktcpCliSock.send(data)data=tcpCliSock.recv(BUFSIZ)if not data:breakprint data
tcpCliSock.close()

客户端的代码相对来说比较简单,前两部分与服务端一样,然后创建一个套接字请求连接,下面的循环向服务端发送信息,等待返回值,最后显示出来。

以上就是简单的TCP服务端和客户端的代码,UDP与TCP类似,可以自己去试一下。

欢迎大神交流!

网络编程(python语言)相关推荐

  1. 教孩子学编程 python语言版_教孩子学编程 PYTHON语言版 PDF_IT教程网

    资源名称:教孩子学编程 PYTHON语言版 PDF 资源目录: 第1章Python基础--认识环境1 1.1认识Python3 1.2用Python编写程序5 1.3运行Python程序5 1.4本章 ...

  2. python教孩子学编程,教孩子学编程(Python语言版)

    教孩子学编程(Python语言版) 第1 章 Python 基础:认识环境 #NiceHexSpiral.py #运行后,挺奇特,整个作画过程,完全呈现. import turtle colors=[ ...

  3. 编程python语言_python编程语言的简要历史

    编程python语言 The Python programming language is a general-purpose programming language that has carved ...

  4. python 网络编程是什么_什么是网络编程-Python 网络编程-嗨客网

    Python网络编程网络编程教程 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机.数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一 ...

  5. 网络编程+Python

    一.网络编程(模块:socket,from socket import *): 1. 网络层的IP地址可以唯一标识网络中的主机,传输层的"协议+端口"则可以唯一标识主机中应用程序( ...

  6. 网络编程——python

    目录 1.网络通信的相关概念 2.Socket(简单版) 2.1 不同电脑上的进程之间如何通信 2.2 什么是scoket 2.3 创建socket 2.4 写代码 2.4.1 UDP发送信息 2.4 ...

  7. Windows网络编程 c语言 报错:[Error] ‘bzero‘ was not declared in this scope

    阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量.文章设置为仅粉丝可见,是因为写博客确实花了不少精力.希望互相进步谢谢!! 文章目录 阅读前请看一下:我是一个热衷于记 ...

  8. python网络套接字_Python网络编程 Python套接字编程

    Python 提供了两个级别访问的网络服务. 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络服 ...

  9. 初识Java----适合网络编程的语言

    Java第一天 前言 准备工作 什么是JDK? 主函数 字节码文件---class Java类型和类型 变量 如何定义变量 整形变量 变量命名规则 长整形 Long 短整型short 浮点型 双精度浮 ...

  10. python套接字编程_Python网络编程 Python套接字编程

    Python 提供了两个级别访问的网络服务. 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络服 ...

最新文章

  1. ExtendTableView
  2. 【深度学习】卷积越大性能越强!RepLKNet一作在线分享:Transformer阴影下的超大卷积核复兴...
  3. 【ORACLE 高可用】 ORACLE STREAM 基于单表的流复制 配置 案例
  4. 计算机本地用户删除后怎么恢复,电脑本地磁盘盘符被隐藏C盘不见了恢复方法...
  5. vue页面引入多个组件的方法
  6. SAP Spartacus 里 ng-template和ng-container的嵌套使用
  7. 捷波朗STORM耳机设置中文_2020年 除了Airpods pro以外无线降噪蓝牙耳机如何选?五款热门入耳式蓝牙降噪耳机推荐...
  8. ObjectDataSource与GridView配合使用经验总结系列二:分页
  9. 《剑指offer》面试题27——二叉搜索树与双向链表(C++)
  10. RTB竞价中的cookie mapping技术
  11. Dxg——python MicroPython 开发笔记整理分类合集【所有的相关记录,都整理在此】
  12. StylesheetLanguage--如何使用Less--前端样式语言
  13. 中文版 Ubuntu主目录里的桌面等中文目录名称改成英文
  14. Linux下文件压缩、打包,看这一篇就够了
  15. Soul 源码分析07 SOUL Admin 网关 Http长轮询 数据同步
  16. Python+Selenium自动搜索基金业协会指定企业名单,抓取指定信息并保存到数据库...
  17. 细数与计算机有关的诺贝尔物理学奖
  18. BYOD应用的安全性
  19. 看美女怎样将正装穿出性感范儿(多图)
  20. 软件测试人员需要具备哪些技能?

热门文章

  1. Visual Studio 2013 不小心关掉“解决方案资源管理器”怎么办?
  2. HadoopSpark
  3. 低价香港云服务器靠谱吗?可以购买低价香港云服务器吗?
  4. css实现内容两端对齐
  5. 计算机网络实验Lab1 Test
  6. CSS实现进度条和订单进度条
  7. TCP/IP协议中的端口
  8. USB TYPE C接口拆解及定义、USB3.1标准说明
  9. windows 命令大全
  10. android 存储盘 dcim,DCIM是什么?教你轻松理清照片存放路径