扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
使用socket实现tcp通信,需导入socket模块
在蕉城等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站设计 网站设计制作按需网站开发,公司网站建设,企业网站建设,高端网站设计,成都营销网站建设,外贸网站制作,蕉城网站建设费用合理。1、服务端
主要步骤:
(1)创建socket:socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
family:AF_INET , AF_INET6, AF_UNIX, AF_CAN, AF_PACKET, AF_RDS
type:SOCK_STREAM , SOCK_DGRAM, SOCK_RAW,或者其他SOCK_*
proto:一般使用默认值0
fileno:一般使用默认值
(2)绑定IP和端口号:socket.bind(address)
address:使用(host,port)元组即可
(3)监听:socket.listen([backlog])
backlog:就理解为大连接数
(4)接受连接:socket.accept()
返回(conn,address)元组,分别是已连接客户端的socket对象和地址
(5)发送/接受数据:socket.recv(bufsize[, flags])/socket.send(bytes[, flags])
bufsize:接收的数据大字节数
bytes:需要发送的数据字节数
(6)关闭连接:socket.close()
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:tcpserver.py import socket import time MaxBytes=1024*1024 server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.settimeout(60) host = '127.0.0.1' #host = socket.gethostname() port = 11223 server.bind((host, port)) # 绑定端口 server.listen(1) # 监听 try: client,addr = server.accept() # 等待客户端连接 print(addr," 连接上了") while True: data = client.recv(MaxBytes) if not data: print('数据为空,我要退出了') break localTime = time.asctime( time.localtime(time.time())) print(localTime,' 接收到数据字节数:',len(data)) print(data.decode()) client.send(data) except BaseException as e: print("出现异常:") print(repr(e)) finally: server.close() # 关闭连接 print("我已经退出了,后会无期")
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流