python之Socket TCP实战演练
2018-07-27 06:27:37来源:博客园 阅读 ()
用socket进行网络开发需了解服务器和客户端的Socket原语,每个原语在不同的高级语言中都有相应的实现方式。TCP的Socket原语如下:
socket():建立Socket对象。bind():绑定。在参数中需要传入绑定的IP地址和端口。listen():监听。只在服务器端有用,告诉操作系统开始监听之前绑定的IP地址和端口,可以在参数中指定允许排队的最大连接数量。connect(): 在客户端连接服务器。参数中需要指定服务器的地址和端口。accept():接受连接。只在服务器端有用,从监听到的连接中取出一个,并将其包装成一个新的Socket对象。send():发送数据。服务器和客户端均可以调用send()向对方发送数据,在send()的参数中传入要发送的数据,通过send()的返回值判断数据是否发送成功。recv():接收数据。服务器和客户端均可调用recv()从对方接收数据。close():关闭连接。通信中的任何一方可以调用close()发起关闭连接请求,另一方收到后也调用close()关闭连接。
下面通过Python代码演示
服务端代码如下:
import socket HOST='0.0.0.0' PORT = 3434 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind((HOST,PORT))#绑定IP与端口 s.listen(1) while True: conn,addr = s.accept() print('Client %s connected!'%str(addr) )#输出客户端的IP地址 dt = '我来自服务端' message = 'Current time is ' + str(dt) conn.send(message.encode())#向客户端发送时间 print("Sent:",message) conn.close()#关闭链接
与服务器端对应的客户端代码如下:
import socket #socket模块 HOST = '127.0.0.1' PORT = 3434 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((HOST,PORT)) print('Connect %s:%d OK'%(HOST,PORT)) data = s.recv(1024)#接受数据,本次接收数据的最大长度为1024 print("Received:",data.decode()) s.close()#关闭链接
自行调试,查看执行结果!
注:客户端的Socket端口号由系统自动分配。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:列表基本操作
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash