zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    创建数据库的那些事
    同步、异步、阻塞、非阻塞我的理解
    Openfire MultiUserChat 多用户聊天 消息发送
    JAVA 随机字符串
    OF 同步异步问题的改进
    Openfire S2S 监听与消息处理
    MySQL FEDERATED 存储引擎
    一个S2S通信中的同步、异步问题的解决
    Openfire Monitoring/jinglenodes plugin error
    Java Cache System JCS(一) 使用方法
  • 原文地址:https://www.cnblogs.com/lovely7/p/5830197.html
Copyright © 2011-2022 走看看