这是我拥有的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
答案 0 :(得分:0)
在流套接字上是按设计。来自wikipedia page:的流套接字是一种互联网套接字,它提供面向连接,顺序和唯一的数据流,而没有记录边界。如果您在阅读时已经存在多条消息,则可以将它们连接起来。
规范保证的所有内容,如果你得到所有,并按顺序。