|
发表于 2023-12-21 10:29:05
|
显示全部楼层
当然可以!下面是一个基于UDP协议的局域网聊天器的示例代码:
服务器端代码:
- import socket
- def receive_messages(udp_socket):
- while True:
- data, addr = udp_socket.recvfrom(1024)
- print('收到消息:', data.decode())
- def send_messages(udp_socket, dest_ip, dest_port):
- while True:
- msg = input('请输入要发送的消息:')
- udp_socket.sendto(msg.encode(), (dest_ip, dest_port))
- def main():
- udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- udp_socket.bind(('', 8888))
- dest_ip = input('请输入客户端的IP地址:')
- dest_port = int(input('请输入客户端的端口号:'))
- recv_thread = threading.Thread(target=receive_messages, args=(udp_socket,))
- send_thread = threading.Thread(target=send_messages, args=(udp_socket, dest_ip, dest_port))
- recv_thread.start()
- send_thread.start()
- if __name__ == '__main__':
- main()
复制代码
客户端代码:
- import socket
- def receive_messages(udp_socket):
- while True:
- data, addr = udp_socket.recvfrom(1024)
- print('收到消息:', data.decode())
- def send_messages(udp_socket, server_ip, server_port):
- while True:
- msg = input('请输入要发送的消息:')
- udp_socket.sendto(msg.encode(), (server_ip, server_port))
- def main():
- udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- server_ip = input('请输入服务器的IP地址:')
- server_port = int(input('请输入服务器的端口号:'))
- recv_thread = threading.Thread(target=receive_messages, args=(udp_socket,))
- send_thread = threading.Thread(target=send_messages, args=(udp_socket, server_ip, server_port))
- recv_thread.start()
- send_thread.start()
- if __name__ == '__main__':
- main()
复制代码
你需要在两台电脑上分别运行服务器端代码和客户端代码。服务器端代码会等待客户端连接,并接收客户端发送的消息。客户端代码会向服务器发送消息,同时接收服务器返回的消息。你需要确保两台电脑在同一个局域网中,并输入正确的IP地址和端口号。希望对你有帮助!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|