2014-10-08 1 views
0

Вот часть из питона сценария у меня есть: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

Исправьте углубление. – NPE

+0

@NPE спасибо, что указал это вне. Он исправлен в реальном файле python, но по какой-то причине он переформатирован здесь. Я отредактирую свой вопрос. – abcbabcbabcba

ответ

0

Это дизайн на поток сокетом. С wikipedia page: потоковый сокет - это тип интернет-сокета, который обеспечивает ориентированный на соединение, упорядоченный и уникальный поток данных без границ записи. Если несколько сообщений уже присутствуют при чтении, они могут быть объединены.

Все, что гарантируется спецификацией, если вы получаете все и в порядке.