説明:多臺電腦連同一網絡可通信。
有界面版待更;
一、UDP聊天(無界面)
1. 架构
2. 代碼
UDP服务端代码:
import socket
# 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定固定端口
udp_socket.bind(('', 6665))
# 回射接收到的消息
while True:
# 接收消息
recv_data, remote_address = udp_socket.recvfrom(4096)
print("接收到了%s发来的消息%s" % (str(remote_address), recv_data.decode()))
# 回射
udp_socket.sendto(recv_data, remote_address)
客戶端代碼:
import socket
def send_message(udp_socket):
# 输入的内容
data = input("请输入您要发送的信息内容:")
# ip
ip = input("请输入对方的ip地址:")
# 端口
port = int(input("请输入端口:"))
# 发送数据
udp_socket.sendto(data.encode(), (ip, port))
def receive_message(udp_socket):
recv_data, romote_address = udp_socket.recvfrom(4096)
print("收到了来自%s的回信%s" % (str(romote_address), recv_data.decode()))
def main():
# 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定固定端口
udp_socket.bind(("", 6667))
while True:
# 输入指示
command = input("请输入您要执行的功能 1.发送消息 2.接收消息 3.退出")
# 发送数据
if command == '1':
send_message(udp_socket)
# 接收数据
elif command == '2':
receive_message(udp_socket)
# 退出
elif command == '3':
break
else:
print("输入有误,请重新输入")
if __name__ == '__main__':
main()
3. 測試
運行服務器端 等待
運行客戶端
輸入1 選擇發送消息
向本機發送了消息
與同學連上同一個網絡
互相發送消息