利用套接字socket,模拟聊天器
1,客户端代码:
import socket if __name__ == "__main__": silent_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #连接服务器 send_ip = input("请输入要发送的ip地址:") send_port = input("请输入要发送的端口号地址:") address = (send_ip, int(send_port)) silent_socket.connect(address) while True: send_msg = input("输入想发送的文字") if send_msg != 'exit': #发送数据 send_data = send_msg.encode("utf-8") silent_socket.send(send_data) #接收返回数据 recv_data= silent_socket.recv(1024) recv_msg = recv_data.decode("utf-8") print(recv_msg) else: break silent_socket.close()
2 服务器端代码:
import socket if __name__ == "__main__": #创建服务器socket serves_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) serves_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) #绑定服务器的ip地址和端口 serves_address = ("", 9890) serves_socket.bind(serves_address) #监听,主动边被动 serves_socket.listen(128) #使用accept 返回的连接上的socket client_socket, client_address = serves_socket.accept() while True: recv_data = client_socket.recv(1024) recv_msg = recv_data.decode("utf-8") print(recv_msg, client_address) #服务器发送的信息 send_msg = input("输入返回客户端的数据") send_data = send_msg.encode("utf-8") client_socket.send(send_data) #关闭接收和发送数据的socket client_socket.close()
3 客户端测试结果:
请输入要发送的ip地址:192.168.243.130 请输入要发送的端口号地址:9990 输入想发送的文字你好啊,服务器大哥 不要喊我哥,我还未成年 输入想发送的文字好吧 我在你那个岁数的时候也没你这么p 来呀 相互伤害啊 输入想发送的文字exit
4服务器端测试结果:
你好啊,服务器大哥 ('192.168.243.1', 50065) 输入返回客户端的数据不要喊我哥,我还未成年 好吧 我在你那个岁数的时候也没你这么p ('192.168.243.1', 50065) 输入返回客户端的数据来呀 相互伤害啊 ('192.168.243.1', 50065) 输入返回客户端的数据