Python - 将字符串拆分为单个字节并将它们重新组合在一起

时间:2014-10-08 06:25:17

标签: python sockets split chat p2p

这是我拥有的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

1 个答案:

答案 0 :(得分:0)

在流套接字上是按设计。来自wikipedia page的流套接字是一种互联网套接字,它提供面向连接,顺序和唯一的数据流,而没有记录边界。如果您在阅读时已经存在多条消息,则可以将它们连接起来。

规范保证的所有内容,如果你得到所有,并按顺序。