python网络编程 之udp通信
#encoding=utf-8 # ss = socket() # 创建一个服务器套接字 # ss.bind() # 绑定服务器套接字 # inf_loop: # 服务器无限循环 # cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送) # ss.close() # 关闭服务器套接字 # 创建一个能接收客户的消息,在消息前加一个时间戳后返回的 UDP 服务器 from socket import * from time import ctime host = '' port = 21567 bufsiz = 1024 addr = (host,port) udpServerSock = socket(AF_INET,SOCK_DGRAM) udpServerSock.bind(addr) while True: print 'waiting for message' data,addr2 = udpServerSock.recvfrom(bufsiz) # s.recvfrom(bufsize[.flag]) # 接受UDP套接字的数据。与recv()类似,但返回值是(data,address)。 # 其中data是包含接收数据的字符串,address是发送数据的套接字地址。 print 'received from ',addr2 udpServerSock.sendto('[%s] %s' % (ctime(),data),addr2) # s.sendto(string[,flag],address) # 发送UDP数据。将数据发送到套接字, # address是形式为(ipaddr,port)的元组,指定远程地址。返回值是发送的字节数。 print 'send to ',addr2 udpServerSock.close()
cs = socket() # 创建客户套接字
comm_loop: # 通讯循环
cs.sendto()/cs.recvfrom() # 对话(发送/接收)
cs.close() # 关闭客户套接字
#encoding=utf-8 # cs = socket() # 创建客户套接字 # comm_loop: # 通讯循环 # cs.sendto()/cs.recvfrom() # 对话(发送/接收) # cs.close() # 关闭客户套接字 # 创建一个 UDP 客户端,程序会提示用户输入要传给服务器的信息,显示服务器返回的加了时间 # 戳的结果。 from socket import * host = 'localhost' port = 21567 bufsiz = 1024 addr = (host,port) udpClientSock = socket(AF_INET,SOCK_DGRAM) while True: data = raw_input('>') if not data: break udpClientSock.sendto(data,addr) data,addr = udpClientSock.recvfrom(bufsiz) if not data: break print data udpClientSock.close()