socket, передача коряво получается

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: socket, передача коряво получается

RevYurMIh » 02 июн 2005, 20:56

А не могли бы кто небудь скинуть этот линк?

Lev » 31 мар 2005, 19:41

Спасибо, помогли. Уже читатю.

Kolinus » 31 мар 2005, 15:18

"Это аппаратная проблема - программисты их не решают".
если хочешь все корректно разрулить - сделай подщтверждение клиентом принятия пакета и только тогда отправляй новые данные.
а вообще в инете есть книга Й Снейдер (Снайдер) "Эффективное программирование TCP/IP" там очень хорошо про все грабли расписано

socket, передача коряво получается

Lev » 30 мар 2005, 21:55

Предисловие: искал на этом форуме что-нибуть про сеть - так и не нашёл. :(
Обстановка:
Я пишу 2 программы клиент и сервер. Они создают сокеты, клиент естественно конектится и, затем, отправляет с помощью send(..) несколько байт. Сервер, приняв с помощью recv(..) начинает отправлять клиенту данные с помощью вызова send(..). В каждом вызове send отправляется примерно 50 байт. Количество вызовов сервером функции send примерно 200. Клиент в свою очередь принимает.
Проблема:
Сервер то отправляет (вызов send удачен), а клиент не принимает или принимает мало (1 или 2 раза). Но если сделать Sleep() на сервере хотя бы 30 миллисекунд перед вызовом send() то клиент примет все 200 раз.
Такое ощущение что для правильной работы нужно что бы клиент работал быстрее чем сервер...
В чем заключается проблема? В SDK написано:"The successful completion of a send does not indicate that the data was successfully delivered"
Как сделать что бы "data was successfully delivered".

Вернуться к началу