【问题标题】:Python - splitting string into individual bytes and putting them back togetherPython - 将字符串拆分为单个字节并将它们重新组合在一起
【发布时间】:2014-10-08 06:25:16
【问题描述】:

这是我拥有的 python 脚本的一部分:

  textString = raw_input('')
  text = list(textString)
  print textString
      try:
          for i in range (0, len(text)):
              chat_client.sock.send(text[i])
              i = i + 1
          chat_client.sock.send(0)
          except:
              Exception
          try:
              for i in range (0, len(text)):
                  chat_server.conn.send(text[i])
                  i = i + 1
              chat_server.conn.send(0)
          except:
              Exception

然后我希望在收到它时将其重新组合在一起,使用 int 分隔符 0。仅出于测试目的,我得到了:

                    byte = self.conn.recv(1024)
                    if byte:
                        print byte
                    else:
                        break

仅显示已单独接收的每个字节。

但是,当我插入一个字符串时,其中一些会被拆分为多个字符: 例如敏捷的棕狐跳过懒狗-->

T 
h 
e  
q 
u 
i 
ck 

b 
r 
o 
wn 

f 
ox j 
umps ov 
er the  
lazy dog 

我想知道是否有人能弄清楚为什么会这样。

提前谢谢你。

另外,如果您想知道我为什么要尝试这样拆分文本,那是由于这篇文章的建议: Python P2P socket chat script - only fully working on home network; connects at school but does not work

【问题讨论】:

  • 请修正缩进。
  • @NPE 感谢您指出这一点。它固定在实际的 python 文件上,但由于某种原因,它已在此处重新格式化。我将编辑我的问题。

标签: python sockets split chat p2p


【解决方案1】:

它是设计在流套接字上的。来自wikipedia page流套接字是一种 Internet 套接字,它提供了面向连接、有序且唯一的数据流,没有记录边界。如果您阅读时已经存在多条消息,则它们可能会被连接起来。

规范保证的所有内容,如果您得到所有​​内容,并且按顺序进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2013-03-06
    • 1970-01-01
    相关资源
    最近更新 更多