基于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

经验分享 程序员 微信小程序 职场和发展