Python socket编程
每门语言都会存在网络编程,python也不例外,常见的就是socket编程。
socket:套接字
套接字好比电话的插口,主机和端口就好比区号和电话号码,主机:是你要连接到哪里,端口:是从那个口子连过去,
和大多数语言一样,python 支持面向连接和无连接。
面向连接即需要先连接然后通讯, 面向连接主要协议就是传输控制协议(tcp),要创建tcp套接字时需要指定套接字类型为 SOCK_STRAM,表达了他作为流套接字的特点。
无连接,顾名思义无需建立连接就可以进行通讯,这时数据到达顺序、可靠性就无法保证了。
实现这种连接的协议就是用户数据包协议(udp)。创建UDP时需要指定套接字类型为 SOCK_DGRAM。
创建 socket:
创建socket用到 socket模块函数,语法为:
socket(socket_family,socket_type,protocol=0)
socket_family不是 AF_VNIX 就是 AF_INET,通常使用的是AF_INET(不明白可以去查些资料),socket_type可以是 SOCK_STREAM 或者 SOCK_DGRAM,protocol一般不填,就默认为0
创建一个TCP/IP的套接字:
tcpSock = socket(socket.AF_INET,socket.SOCK_STRAM)
创建一个UDP/IP的套接字:
udpSock= socket(socket.AF_INET,socket.SOCK_DGRAM)
创建好套接字以后,我们需要使用套接字的内建方法,常用的方法:
#服务器端
s.bind() 绑定地址(主机,端口)到套接字
s.listen() 开始监听
s.accept() 被动接受 tcp客户端连接(阻塞式),等待连接的到来
#客户端
s.connet() 主动初始化tcp服务器连接
s.connet_ex() connet扩展版本,出错时返回错误代码,不抛出异常
s.recv() 接受tcp数据
s.send() 发送数据
s.close() 关闭套接字
常用的方法如上,还有一些方法大家可以查询些资料。
socket:套接字
套接字好比电话的插口,主机和端口就好比区号和电话号码,主机:是你要连接到哪里,端口:是从那个口子连过去,
和大多数语言一样,python 支持面向连接和无连接。
面向连接即需要先连接然后通讯, 面向连接主要协议就是传输控制协议(tcp),要创建tcp套接字时需要指定套接字类型为 SOCK_STRAM,表达了他作为流套接字的特点。
无连接,顾名思义无需建立连接就可以进行通讯,这时数据到达顺序、可靠性就无法保证了。
实现这种连接的协议就是用户数据包协议(udp)。创建UDP时需要指定套接字类型为 SOCK_DGRAM。
创建 socket:
创建socket用到 socket模块函数,语法为:
socket(socket_family,socket_type,protocol=0)
socket_family不是 AF_VNIX 就是 AF_INET,通常使用的是AF_INET(不明白可以去查些资料),socket_type可以是 SOCK_STREAM 或者 SOCK_DGRAM,protocol一般不填,就默认为0
创建一个TCP/IP的套接字:
tcpSock = socket(socket.AF_INET,socket.SOCK_STRAM)
创建一个UDP/IP的套接字:
udpSock= socket(socket.AF_INET,socket.SOCK_DGRAM)
创建好套接字以后,我们需要使用套接字的内建方法,常用的方法:
#服务器端
s.bind() 绑定地址(主机,端口)到套接字
s.listen() 开始监听
s.accept() 被动接受 tcp客户端连接(阻塞式),等待连接的到来
#客户端
s.connet() 主动初始化tcp服务器连接
s.connet_ex() connet扩展版本,出错时返回错误代码,不抛出异常
s.recv() 接受tcp数据
s.send() 发送数据
s.close() 关闭套接字
常用的方法如上,还有一些方法大家可以查询些资料。