python socket模块
来源:互联网 发布:dota2解除小黑屋软件 编辑:程序博客网 时间:2024/06/06 07:48
Python socket模块实现了服务器和客户端之间的通信,具体来说,是用socket()函数来创建一个套接字(个人理解相当于一种协议,如因特网地址是用主机名+端口号构成就是套接字的一种体现),而套接字又利用系列的方法实现了网络通信。套接字分为有连接的套接字和无连接的套接字。
Python支持的套接字有两种:一种是AF_UNIX,或则叫AF_LOCAL,基于文件系统的,如同一台机器上多个进程之间的通信,底层结构由文件系统来支持。另外一种套接字是AF_INET,基于网络型的,实现不同机器之间的通信。在Python2.5之后加入了AF_NETLINK,用于支持Linux套接字。
创建socket服务器
- from socket import socket,AF_INET,SOCK_STREAM
- from time import ctime
- HOST = '' #HOST为空,绑定所有有效的地址,即可以接收所有客户端的请求
- PORT = 21567 #端口号
- BUFSIZE = 1024 #缓冲区的大小
- ADDRESS = (HOST,PORT)
- tcpSerSock = socket(AF_INET,SOCK_STREAM)
- #--------------------------------------#
- #用socket(socket_family,socket_type,protocol=0)创建套接字
- #socket_family为AF_UNIX或AF_INET
- #AF_UNIX:基于文件系统
- #AF_INET:基于网络系统
- #socket_type为SOCK_STREAM或SOCK_DGRAM
- #SOCK_STREAM:面向连接(TCP),以数据流方式传输数据
- # 有序、可靠的、不会重复传输
- #SOCK_DGRAM:面向无连接,以数据包方式传输
- # 不可靠,无序,性能更高
- #protocol默认值为0
- #-------------------------------------#
- tcpSerSock.bind(ADDRESS) #绑定IP地址到套接字
- tcpSerSock.listen(5) #监听连接,参数表示允许同时连接的最大数
- while True:
- print 'waiting for connection...'
- tcpClisock,addr = tcpSerSock.accept();
- #accept()返回socket请求对象和客户端地址
- print '...connected from:',addr
- while True:
- data = tcpClisock.recv(BUFSIZE)
- #接收客户端发送的数据
- if not data:
- break
- print data
- responseinfo = raw_input('>')
- tcpClisock.send('[%s] %s' %(ctime(),responseinfo))
- #响应请求
- tcpClisock.close()
- tcpSerSock.close()
创建socket客户端
- from socket import socket,AF_INET,SOCK_STREAM
- HOST = '127.0.0.1' #指定服务器地址
- PORT = 21567
- BUFSIZE = 1024
- ADDRESS = (HOST,PORT) #PORT,BUFSIZE参数和服务器相同
- tcpCliSock = socket(AF_INET,SOCK_STREAM)
- #和服务器端保持一致
- tcpCliSock.connect(ADDRESS) #连接服务器
- while True:
- data = raw_input('>')
- if not data:
- break
- tcpCliSock.send(data)
- data = tcpCliSock.recv(BUFSIZE)
- #接收服务器响应消息
- if not data:
- break
- print data
- tcpCliSock.close()
启动两个命令行窗口分别运行服务器和客户端程序,效果入下:
服务器:
客户端:
0 0
- PYTHON模块之socket
- python socket模块
- Python socket模块编程
- python模块os,socket
- python socket模块
- python socket 模块
- python socket 模块
- Python socket 模块
- python中的socket模块
- python socket模块属性
- Python的Socket模块
- python中的socket模块
- python的socket模块
- Python的socket模块详解
- Python的socket模块详解
- Python网络编程socket模块
- Python的socket模块详解
- Python Socket模块中的IP转换函数
- sip服务器搭建
- nyoj 40 公约数和公倍数
- 在ViewPaper中获取Fragment对象
- 分数拆分
- YII框架数据库表前缀的处理
- python socket模块
- iOS 播放系统声音&系统声音大全
- navigationItem.rightBarButtonItem 实现多个右侧按钮
- hdu 5025 Saving Tang Monk (bfs+状态压缩)
- 0-1全组合-全排列算法
- android sdk mamager 代理
- python--mysite教程
- SDWebImage 浅析
- 什么是线程安全?