python socket 聊天室

socket 发送的时候,使用的是全双工的形式,不是半双工的形式。全双工就是类似于电话,可以一直通信。并且,在发送后,如果又接受数据,那么在这个接受到数据之前,整个过程是不会停止的。会进行堵塞,堵塞就是等待接收数据的一个状态。

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#绑定端口
s.bind(("127.0.0.1", 8888))
while True:
    data = s.recvfrom(1024)
    print(str(data[0].decode("gbk")))
    send_data = input("请输入聊天内容")
    if "exit" in send_data:
        break
    s.sendto(send_data.encode("utf-8"), ('127.0.0.1', 11111))
    # windows是自动进行解析的
s.close()

简单的python socket聊天室就完成了

其中socket.AF_INET是固定的,好像是socket树,SOCK_DGRAM是udp协议。
这个核心是用bind绑定了一个端口,相当于自己在本地开启了一个8888端口。服务端是11111端口

posted @ 2019-11-13 23:08  你们的饭不好吃  阅读(167)  评论(0)    收藏  举报