socket.socket() 可以创建一个套接字:
from socket import * from threading import Thread udp_socket = None dest_ip = '' dest_port = 0 def recvData(): while True: recv_info = udp_socket.recvfrom(1024) #接收包最大字节1024 print(' >> %s : %s' %(str(recv_info[1]), recv_info[0].decode('GBK')) ) print('<< ') def sendData(): while True: send_info = input('<< ') udp_socket.sendto(send_info.encode('GBK'), (dest_ip, dest_port)) #发送包 python3 只能发送字节类型 2.x 可以发送字符串 def main(): global udp_socket global dest_ip global dest_port dest_ip = input('对方的ip: ') dest_port = int(input('对方的端口: ')) udp_socket = socket(AF_INET, SOCK_DGRAM) #创建socket对象 udp_socket.bind(('', 9876)) #端口绑定 tr = Thread(target=recvData) ts = Thread(target=sendData) tr.start() ts.start() tr.join() ts.join() if __name__ == '__main__': main()
简单的发送和接收信息的socket程序.
另: 用 struct.pack() 打包 ,用 unpack() 解包.
还可以直接广播: