python基于socket底层实现tcp/udp 仅为更好的理解底层如何实现。
2021/11/18 1:39:38
本文主要是介绍python基于socket底层实现tcp/udp 仅为更好的理解底层如何实现。,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
关于tcp
服务器端:
import socket f1 = socket.socket(socket.AF_INET,socket.SOCK_STREAM) f1.bind(("127.0.0.1",8080)) f1.listen(5) while True: try: conn,client_addr = f1.accept() data = conn.recv(1024) print(data.decode('utf-8')) conn.send(data.upper()) except Exception as e: break conn.close() 客户端:
import socket cl = socket.socket(socket.AF_INET,socket.SOCK_STREAM) cl.connect(("127.0.0.1",8080)) while True: msg = input("我就是要说:").strip() if len(msg) == 0:continue cl.send(msg.encode('utf-8')) data = cl.recv(1024) print(data.decode('utf-8')) cl.close() udp的实现: 服务端
import socket f1 = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) f1.bind(("127.0.0.1",8080)) while True: res,client_addr = f1.recvfrom(1024) print(res.decode('utf-8')) f1.sendto(res.upper(),client_addr) f1.close() 客户端:
import socket c = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) while True: msg = input("这是我要说的话:").strip() c.sendto(msg.encode('utf-8'),("127.0.0.1",8080)) res,server_addr = c.recvfrom(1024) print(res.decode('utf-8')) c.close() udp 和tcp实现过程种 tcp如果传值为空则会卡住,流式协议,传值为空,服务端收不到则会一直卡着等待 所以在客户端判断了 msg==0的情况 另外异常断开客户端会导致服务端出现bug异常,所以在windows系统下使用try:except 来捕捉异常 使其正常返回 其他方面的不同就是基于原理,,如不需要建立池,客服端也不需要连接端口号,直接发送即可若想要回传,接收方在收记录的时候会记录发送号端口号和ip 回传信息即可
这篇关于python基于socket底层实现tcp/udp 仅为更好的理解底层如何实现。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python