• python 网络编程(四)---UDP服务端客户端


    1.服务器端

    UDP服务器建立与TCP相类似,具体比较如下:

    image

    补充下,第四步:不必使用listen还有accept函数。

    具体代码如下:(设置socket选项省略)

    import socket
    from time import ctime
    
    HOST=''
    PORT=21004
    BUFSIZE=1024
    
    udpSerSock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)  #建立socket
    udpSerSock.bind((HOST,PORT))                  #将socket与端口绑定,这个端口是连接客户端与服务器
    
    while True:
        print 'waiting for message...' 
        data, addr = udpSerSock.recvfrom(BUFSIZE) 
        udpSerSock.sendto('[%s] %s'%(ctime(),data),addr)  
        print '...received from and returned to:',addr
        print ctime(),'  ',data    
    udpSerSock.close()

    2.客户端

    1)SOCK_DGRAM

    2)因为UDP是无连接的,没有使用connect函数,我们无法知道数据是否已经发送结束。

    import socket 
    HOST ='localhost'
    PORT = 21004
    BUFSIZE =1024
    
    udpCliSock =socket.socket(socket.AF_INET,socket.SOCK_DGRAM)    # 建立UDP socket
    
    while True:
        data=raw_input('Enter a string that you want to send: ')
        if not data:
            break
        udpCliSock.sendto(data,(HOST,PORT))           # 发送到服务器端口
        data,(HOST,PORT)=udpCliSock.recvfrom(BUFSIZE) # 接收服务器数据
        if not data:
            break
        print data
    udpCliScok.close()

    结果:

    客户端

    image

    服务器端:

    image

    由上图再结合TCP结果,可以发现每次客户端发送数据给服务器后,(客户端会进行检查吗?),服务器只管收到数据,并返回给客户端,不管对方接收到了没有,都只进行接收下一段数据。(waiting for message…)

    参考:http://www.cnblogs.com/xiaowuyi/archive/2012/08/06/2625509.html

            http://blog.sina.com.cn/s/blog_6b60259a0101ftxx.html

  • 相关阅读:
    监听器heMQ组合的入门练习
    错误积累
    测试cxf 客户端
    day18-1-17获取界面参数
    Station 项目注意事项
    cxf_spring的结合
    ws_cxf入门 错误
    Oracle游标
    Oracle存储函数,存储过程
    Oracle查询
  • 原文地址:https://www.cnblogs.com/menghuizuotian/p/3764693.html
Copyright © 2020-2023  润新知