Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];

Вниз

ServerSock - как отправить сообщ. клиенту   Найти похожие ветки 

 
Dona   (2003-03-06 12:45) [0]

Помогите, пож-та! Как с помощью ф-й WinAPI отправить что-то подключенному клиенту? Заранее спасибо.


 
Digitman   (2003-03-06 13:03) [1]

см. Send(), SendTo()


 
Dona   (2003-03-06 13:11) [2]

Да,есть такое. Но перед вызовом этих ф-й наверняка потребуется что-то еще. Не могу сообразить:
Для сервера выз-ся послед-ть Socket, bind, listen, accept, Recv,
Для клиента - Socket, Connect, Send.

Но что нужно в моем случае?


 
Wonder   (2003-03-06 13:36) [3]

Пардон, а подключенному куда?


 
Dona   (2003-03-06 13:41) [4]

К этому самому серверу.


 
Wonder   (2003-03-06 13:55) [5]

К "этому" это какому? :)
Digitman написал ведь - Send, SendTo


 
Digitman   (2003-03-06 14:05) [6]


> Dona


Верной дорогой идете , товарисч !)

Все правильно - основная последовательность вызовов для TCP-гнезд именно такая


 
Dona   (2003-03-06 14:37) [7]

Спасибо, я знаю, что правильно. Есть сокет-сервер, есть клиент, созданные и инициал.при помощи вышеперечисленной послед-ти команд. Клиент отправляет сообщения серверу, тот принимает, все нормально.

НО как отправить сообщение от сервера к клиенту? Просто SendTo(SrvSock,... ClAddr,...) не работает, возвращает Socket_Error.



 
Digitman   (2003-03-06 14:55) [8]

да точно так же как и клиент это делает !
после того , как коннект установлен, для образованной в результате коннекта вирт.петли соединения нет понятия "сервер" и "клиент". А есть вместо этого в каждый момент времени "приемник" и "передатчик".

"передатчик" вызывает метод send() для хэндла гнезда на своей стороне , а "приемник" - recv() для хэндла гнезда на своей

хэндл гнезда на клиентской стороне возвращается вызовом socket(), на серверной же стороне хэндл гнезда возвращается вызовом [WSA]accept(), который автоматически создает новое гнездо в результате успешного установления коннекта по запросу кл.стороны

т.о., для каждого соединения между клиентами и сервером образуется индивидуальные вирт.петли соединений между гнездом клиента (connect) и автоматически отдельно создаваемым гнездом сервера (accept)



 
Dona   (2003-03-06 15:12) [9]

Спасибо большое, Digitman!

Хоть что-то до меня дошло! Send работает, теперь будем делать recv :)


 
Digitman   (2003-03-06 15:18) [10]

а что тут непонятного ? вот же хэлп на accept():

Remarks

This routine extracts the first connection on the queue of pending connections on s
, creates a new socket and returns a handle to the new socket. The newly created socket has the same properties as s including asynchronous events registered with WSAAsyncSelect or with WSAEventSelect, but not including the listening socket"s group ID, if any. If no pending connections are present on the queue, and the socket is not marked as nonblocking, accept blocks the caller until a connection is present. If the socket is marked nonblocking and no pending connections are present on the queue, accept returns an error as described below. The accepted socket cannot be used to accept more connections. The original socket remains open.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
14-91518
Deadlock
2003-04-08 04:19
2003.04.28
Сплайны


6-91441
RUS1
2003-03-05 08:49
2003.04.28
Использование массивов переменной длинны при работе с Socket


1-91360
Giemgo
2003-04-13 13:07
2003.04.28
Что делает Halt?


14-91536
Dudao
2003-04-11 05:27
2003.04.28
Opera


3-91225
xxxCrazyManxxx
2003-04-10 21:09
2003.04.28
Помогите на SQL реализовать алгоритм исключающий повторяющиеся





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский