基于UDP的简易的聊天功能(Python)
基于UDP的简易的聊天功能(Python)
简单来说,socket是程序要进行网络通信必不可少的,他需要IP来指定主机,port来指定端口,这样才能把数据发送到指定位置 socket通信一般包含以下流程
接下来我们就要用python 的socket来实现一个建议的网络聊天程序了
import socket def UDP_send(s,dis_IP,dis_port): send_data=input("输入数据") if send_data=="close": s.close() exit() s.sendto(send_data.encode("utf-8"),(dis_IP,int(dis_port))) def UDP_receive(s): receive_data=s.recvfrom(1024) print(receive_data[0].decode("utf-8")) if __name__ == __main__: dis_IP = input("请输入对方IP") dis_port = input("请输入对方端口") # creat s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # use IP DUP # bind load_addr = ("", 7788) s.bind(load_addr) while True: UDP_send(s,dis_IP,dis_port) UDP_receive(s)
关于聊天建议程序的讨论: 1.采用UDP协议,可靠性不高,但收发及时 2.Socket应该是全双工的,但简易程序只形成了其半双工的形式,全双工还行进行深一步使用协程、线程等 3.UDP收信息时会存储在操作系统的缓冲区,且来者不拒,这就形成一个漏洞,即如有人恶意发送大文件,缓冲区将占满而不能再接收数据,电脑也会异常卡顿。
另外对TCP与UDP以及计算机网络想有更深的了解可访问: https://blog..net/zhang6223284/article/details/81414149 https://blog..net/sifanchao/article/details/82285018
上一篇:
IDEA上Java项目控制台中文乱码