2012-04-20 3 views
0

У меня есть простой С Программа для копирования образа с сервера с использованием TCPTCP клиент не для конкретного изображения (.bmp)

Проблема в том, что всегда не в состоянии работать с определенными образами, он получает только «х ', а затем истекает время.

Программа здесь не проблема, так как я пробовал с различными программами (C и python с использованием более крупных буферов recv) с использованием TCP, и они все еще терпят неудачу в 'x'th байтах.

server: vxworks 
client: linux 

Если я пытаюсь подключиться к клиенту SUN с использованием того же кода, у него нет проблем с получением изображения. Я немного понюхал пакет и обнаружил, что мой клиент запрашивает пакет «A», в котором есть «x'th byte». Сервер отправляет или повторно передает его, но клиент никогда не признает его и время от времени.

Вопрос В чем причина этого изображения? и происходит только на клиенте linux?

файл записывается клиенту всегда «х» байт длиной

ответ

1

Похоже, сетевой вопрос для меня. Каков размер пакета? Звучит странно, но разве это не может быть MTU blackhole между сервером и Linux?

+0

размер, если 1514 с данными 1460 ... но зачем терпеть неудачу только для этого конкретного изображения, а не для других? – maheshg

+0

не должно быть никакой связи между сбоем и этим изображением в частности. Просто вы не можете надежно «передавать» данные произвольного размера без уровня протокола, который определяет, сколько байтов ожидается. – ShinTakezou

1

Мой друг однажды испытал эту ту же проблему, и оказалось, что полезная нагрузка двоичного изображения, которое он передавал, вызывала ошибку в маршрутизаторе фильтрации. Маршрут просто отключит соединение, когда пройдет определенная последовательность байтов. Необычно, но верно.

+0

это может иметь смысл, поскольку SUN разрезает его по-другому, чем машина Linux ... эта конкретная последовательность байтов видна только в конце загрузки данных TCP при использовании linux, и это клиент пакетов продолжает запрашивать и время от времени. . – maheshg

+0

Знаете ли вы системные особенности или последовательность байтов, которые вызвали такую ​​проблему? – maheshg

+0

Увидел что-то подобное на компьютерах HP еще примерно в 2000 году. Растровое изображение смерти - побудило BSOD к Windows, если оно будет сохранено на диске. –