2005年08月08日 星期一 18:03
ÔÚ05-8-8£¬Wang Kebo <mep_ at 163.com> дµÀ£º > > limodou wrote: > > ÔÀ´µÄEasyWizardÈÃÎÒ¸ÄÃûΪEasyGuiÁË£¬ÕâÊÇÎÒΪEasyGuiдµÄµÚһƪ½Ì³Ì£¬ÒÔºó»¹ > »áдһЩ£¬ÓÐÐËȤ¾Í¿´Ò»¿´¡£ > > > > EasyGui ÏîÄ¿ÏÖÔÚ http://wiki.woodpecker.org.cn/moin.cgi/EasyGui > > ÏÖÔڰ汾Ϊ0.1²âÊÔ°æ > > > > ½Ì³ÌÁ´½Ó£º http://blog.donews.com/limodou/archive/2005/08/08/499792.aspx > > ÄãµÄEasyGUIºÍÒÔÏÂÕâ¸öͬÃûÏîÄ¿ÊÇ·ñÊÇͬһ¸ö£¿Á½¸öÏîÄ¿Ò³Ã涼ûÓбêÃ÷×÷Õß¡£ > > http://www.ferg.org/easygui/ ¿´¾WÕ¾ÉϵĽé½BºÍ½ØD,ß@°ü×î³õÊÇ»ùì¶Tkinter,ªÔ²»ÊÇͬһ,ºÇºÇ! -- ããÈ˺££¬ÄãÊÇÎÒµÄ×î°® -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050808/fda3116d/attachment.htm
2005年08月08日 星期一 22:01
client/server 工作的程序, 使用TCP/IP协议,在 client端接受server发送的数据, 在数据中有很多无效的数据,但是, 有效的数据是一定数据头开始,比如当接收到完整的“F6F6F628282828”时表示数据传送开始,否则就是无效的,现在的问题就是在数据流中不断识别字符,当识别到数据头时,开始接受数据,否则不断识别。 请教有没有好的方法可以识别字符串头,因为server端是不断发送,有些担心client因为识别的问题而丢包。 以下是我的思路: dataTag = "F6F6F628282828" # 数据头 nDataLen = len(dataTag) # 数据头长度 data = [] # 存储收到的数据, 按队列的方式操作 dataLen = 0 # 队列的数据长度 while (1): ch = sock.recv(1) # sock 是client端的socket的实例 if(ch 是非法字符): # 清掉已收数据 data = [] dataLen = 0 data.append(ch) # 加到队列尾部 dataLen = dataLen + 1 if(dataLen == nDataLen): # 队列中的数据长已经达到数据头的长度 if(data == dataTag): # 判断收到数据是否是数据头, 这里是简写 # 识别出数据头, 相应处理 pass else: data = data[1 : ] # 删除队列头部元素 dataLen = dataLen - 1 谢谢 个人感觉比较罗索的地方是由于是使用列表来实现队列,而数据头又是字符串类型,所以相互的转换和比较比较麻烦, 而且操作队列头部也不好操作 --------------------------------- DO YOU YAHOO!? 雅虎邮箱超强增值服务-2G超大空间、pop3收信、无限量邮件提醒 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050808/8dec3652/attachment.html
2005年08月09日 星期二 00:35
为什么不一次多sock.recv一些数据,这样接收下来的数据就是字符串了。 再接收时将前一次未结束的有效数据或者size(数据头)-1个字符加到这一次的接收字符串前就行了。
2005年08月09日 星期二 01:27
恩。。。。。 在05-8-9,Jason Liu <telecomliu at gmail.com> 写道: > > 为什么不一次多sock.recv一些数据,这样接收下来的数据就是字符串了。 > 再接收时将前一次未结束的有效数据或者size(数据头)-1个字符加到这一次的接收字符串前就行了。 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050809/ae07bf49/attachment.html
2005年08月09日 星期二 08:25
在 05-8-8,泰传 温<wendwghit at yahoo.com.cn> 写道: > client/server 工作的程序, 使用TCP/IP协议,在 client端接受server发送的数据, 在数据中有很多无效的数据,但是, > 有效的数据是一定数据头开始,比如当接收到完整的"F6F6F628282828"时表示数据传送开始,否则就是无效的,现在的问题就是在数据流中不断识别字符,当识别到数据头时,开始接受数据,否则不断识别。 > > 请教有没有好的方法可以识别字符串头,因为server端是不断发送,有些担心client因为识别的问题而丢包。 > > 以下是我的思路: > > dataTag = "F6F6F628282828" # 数据头 > nDataLen = len(dataTag) # 数据头长度 > data = [] # 存储收到的数据, 按队列的方式操作 > dataLen = 0 # 队列的数据长度 > while (1): > ch = sock.recv(1) # sock 是client端的socket的实例 > if(ch 是非法字符): # 清掉已收数据 > data = [] > dataLen = 0 > > data.append(ch) # 加到队列尾部 > dataLen = dataLen + 1 > > if(dataLen == nDataLen): # 队列中的数据长已经达到数据头的长度 > if(data == dataTag): # 判断收到数据是否是数据头, 这里是简写 > # 识别出数据头, 相应处理 > pass > else: > data = data[1 : ] # 删除队列头部元素 > dataLen = dataLen - 1 > > 谢谢 > > 个人感觉比较罗索的地方是由于是使用列表来实现队列,而数据头又是字符串类型,所以相互的转换和比较比较麻烦, > 而且操作队列头部也不好操作 你可以参考telnetlib中对缓冲数据及expect的处理。还有一个叫pyexpect的包可以找一找,就是python写的expect模块。 -- I like python! My Donews Blog: http://www.donews.net/limodou New Google Maillist: http://groups-beta.google.com/group/python-cn
Zeuux © 2025
京ICP备05028076号