Python论坛  - 讨论区

标题:Re: [python-chinese] [Blog转贴][EasyGui]教程 - 从Hello, EasyGui开始

2005年08月08日 星期一 18:03

大熊 bearsprite at gmail.com
Mon Aug 8 18:03:08 HKT 2005

ÔÚ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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月08日 星期一 22:01

泰传 温 wendwghit at yahoo.com.cn
Mon Aug 8 22:01:54 HKT 2005

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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月09日 星期二 00:35

Jason Liu telecomliu at gmail.com
Tue Aug 9 00:35:26 HKT 2005

为什么不一次多sock.recv一些数据,这样接收下来的数据就是字符串了。
再接收时将前一次未结束的有效数据或者size(数据头)-1个字符加到这一次的接收字符串前就行了。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月09日 星期二 01:27

win shallwin shallwin at gmail.com
Tue Aug 9 01:27:10 HKT 2005

恩。。。。。

在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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月09日 星期二 08:25

limodou limodou at gmail.com
Tue Aug 9 08:25:52 HKT 2005

在 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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号