Форум сайта python.su
13
naumanА линух в этой же локальной сети или вне ее пределов?
Серверная часть работает на нескольких удаленных компах в пределах локальной сети, везде стоит XP.
Офлайн
13
Наверное нужно объяснить куда я клоню. То, что линух получает 1448 за раз как раз понятно. Это стандартный для Ethernet MTU(1500) минус TCP и IP заголовки. И как правильно здесь написали - это не ограничение ОС, а вполне нормальное поведение под названием сегментирование TCP, если я правильно помню. И recv нужно звать пока не вычитаем все. Это везде описано. Да вот хотя бы и в примере к модулю socket: http://docs.python.org/library/socket.html#example, раз уж мы о Питоне говорим.
Вопрос в том почему винда так не делает. Может линух просто быстрее и поэтому recv успевает вычитать первый TCP сегмент быстрее, чем приходит второй. Или все-таки виндовый клиент внутри сети, а линуховый снаружи?
Офлайн
0
Вопрос в том почему винда так не делает.ещё можно покапать в сторону того как работают в венде и linux – алгоритмы формирования “окон” внутри TCP потока ..
Офлайн
0
Linux и windows на одной машине, в пределах той же сети. На Висте и 7 не проверял.
Офлайн
0
Всем спасибо за участие, получилось методом склейки из кусочков.
Офлайн
13
naumanВдогонку - send тоже может послать не все. Так что проверьте еще и серверный код. Там точно так же нужно делать. Проверять сколько ушло и посылать в цикле пока все не пошлется.
Всем спасибо за участие, получилось методом склейки из кусочков.
Офлайн