作家
登录

UDP客户端编码解析

作者: 来源: 2012-06-23 09:59:01 阅读 我要评论

在前面,我们对UDP协议的相关内容也有了一定了解了。那么接下来我们则重点将诶少一下UDP客户端的创建过程。首先让我们看一下在Unix系统中,如何进行创建。那么请大家浏览文章看一下编写的源码。

创建一个UDP客户端

这一节中介绍的4段程序中,下面的这段UDP客户端代码是最短的。伪代码如下:

  1. cs = socket()                # 创建客户端套接字  
  2. comm_loop:                   # 通讯循环  
  3. cs.sendto()/cs.recvfrom()    # 对话(发送/接收)  
  4. cs.close()                   # 关闭客户端套接字 

在套接字对象创建好之后,我们就进入一个与服务器的对话循环。在通信结束后,套接字就被关闭了。tsUclnt.py真实的代码在例16.4中给出。

逐行解释

1~3行

还是跟TCP版本的客户端一样,在Unix的启动信息行后,我们导入了socket模块的所有属性。

5~10行

因为我们的服务器也是运行在本机,我们的客户端还是使用本机和相同的端口号。自然地,缓冲区的大小也还是1K。创建套接字的方法跟UDP服务器中的一样。

12~22行

UDP客户端的循环基本上与TCP客户端的完全一样。唯一的区别就是,我们不用先去跟UDP服务器建立连接,而是直接把消息发送出去,然后等待服务器的回复。得到加了时间戳的字符串后,把它显示到屏幕上,然后再继续其他的消息。在输入结束后,退出循环,关闭套接字。
例16.4  UDP时间戳客户端(tsUclnt.py)

创建一个UDP客户端,程序会提示用户输入要传给服务器的信息,显示服务器返回的加了时间戳的结果。

#!/usr/bin/env python
from socket import *
HOST=' localhost '
PORT=21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpCliSock = socket(AF_INET, SOCK_DGRAM)
while True:
data = http://network.51cto.com/art/201007/raw_input('> ')
if not data:
break
udpCliSock.sendto(data, ADDR)
data, ADDR = udpCliSock.recvfrom(BUFSIZ)
if not data:
break
print dataudpClisock.close()
udpCliSock.close()


  推荐阅读

  UDP协议的应用

前面的文章中,我们已经对UDP协议的一些基础内容进行了讲解,其中,我们也介绍了它与TCP的区别。在这里我们简要回顾一下。另外我们举出了一个例子,并且对UDP协议的应用也进行了介绍。1. UDP和TCP协议的区别UDP和TCP>>>详细阅读


本文标题:UDP客户端编码解析

地址:http://www.17bianji.com/xieyi/7338.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)