пример на сокетах беркли без всяких обвязок
https://pastebin.com/sBGuzNcu
Я создаю серверный сокет, принимаю новое соединение, и читаю с него тсп-поток в буффер. С клиента отсылаю "hello" не закрываю соединение.
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send("hello")
print 'Sent hello'
time.sleep(1000000) # соединение не закрывается
Операция чтения на сервере завершается ровно в тот момент, когда все эти 6 байт прочитаны.
Вопрос - как? Если в тсп это "поток", у которого нет конца. Ты вроде говорил что чтение будет либо пока буффер не заполнится, либо пока соединение не прервертся. У меня ни одно из этих условий не наступило - размер буфера 1024, прочитано 5 байт, соединение не разорвано
Received 5 bytes : hello
Вопрос ко всем желающим ответить, если что
Ну... Я не знаю, что там не так. Или наоборот, какая магия читает 5 байт. Во-первых, для этого надо И КЛИЕНТА тоже смотреть. ВО-вторых, я должен сам прогнать код и увидеть, что оно принимает 5 байт, а клиент при этом посылает именно 5 и не дисконнектится.
Обсуждают сегодня