网络编程 udp聊天-传智播客版
import socket def send_msg(udp_socket,dst_ip,dst_port): msg = input('>>>')+'\n' udp_socket.sendto(msg.encode('gbk'),(dst_ip,dst_port)) def recv_msg(udp_socket): msg,addr = udp_socket.recvfrom(1024) msg = '收到消息:'+msg.decode('gbk') print(msg) def main(): udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) udp_socket.bind(('',7788)) dst_ip = input('请输入对方IP:') dst_port = int(input('请输入对方的端口:')) while True: send_msg(udp_socket,dst_ip,dst_port) recv_msg(udp_socket) if __name__ == '__main__': main()
tcp客户端
import socket def main(): tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) ip = input('请输入对方ip: ') port = input('请输入对方端口:') ip_port = (ip,int(port)) tcp_socket.connect(ip_port) send_data = input('>>>').encode('gbk') tcp_socket.send(send_data) msg = tcp_socket.recv(1024).decode('gbk') print(msg) tcp_socket.close() if __name__ == '__main__': main()
tcp服务器
# tcp 服务器 import socket def main(): tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) tcp_socket.bind(('',7788)) tcp_socket.listen(128) while True: print('等待一个新的客户端的到来...') client_socket,client_addr = tcp_socket.accept() print('一个新的客户端已经到来%s'%str(client_addr)) while True: data = client_socket.recv(1024) print('收到消息:'+data.decode('gbk')) if data.decode('gbk')=='q': break msg = input('>>>')+"\n" client_socket.send(msg.encode('gbk')) client_socket.close() print('已经为这个客户服务完毕!') tcp_socket.close() if __name__ == '__main__': main()