powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Win_Sock
14 сообщений из 14, страница 1 из 1
Win_Sock
    #33614550
bender2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу клиент-серверное приложение с помощью интерфейса сокетов (TCP)
создал сокет на сервере и запустил его на прослушку порта
создал сокет на клиенте, коннекчусь к серверу, клиент регистрируется на сервере!
Эти два приложения должны обмениваться файлами и сообщениями между собой!
На клиенте я создал обработчик команд с сервера, и есть идея, что такой же обработчик надо создать и на сервере.
Подскажите, для этого надо создавать дополнительный сокет (для прослушки команд клиента) или хватит одного, созданного на сервере?
Или у Вас есть какие-либо идеи, заранее благодарен!!!!
Заранее спасибо!!!!!!
...
Рейтинг: 0 / 0
Win_Sock
    #33614594
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bender2002Пишу клиент-серверное приложение с помощью интерфейса сокетов (TCP)
создал сокет на сервере и запустил его на прослушку порта
создал сокет на клиенте, коннекчусь к серверу, клиент регистрируется на сервере!
Эти два приложения должны обмениваться файлами и сообщениями между собой!
На клиенте я создал обработчик команд с сервера, и есть идея, что такой же обработчик надо создать и на сервере.
Подскажите, для этого надо создавать дополнительный сокет (для прослушки команд клиента) или хватит одного, созданного на сервере?
Или у Вас есть какие-либо идеи, заранее благодарен!!!!
Заранее спасибо!!!!!!
Вообще-то по идее наоборот все делается - сервер обслуживает комманды клиента. Для обратных вызовов наиболее гармонично бы сделать второе соединение или делать UDP - нотификации о том, что клиент должен как-то обновить свое состояние или сделать конкретную комманду. Правда, такой протокол не будет нормально тоннелироваться через NAT / IP Masquerading. Если нужна проходимость через NAT, то наверное нужно передавать серверу идентификатор запроса чтобы он в передавал его в ответ, чтобы понять что к чему относится. Для ответов, которые ни к чему не относятся и являются коммандами от сервера клиенту надо будет передавать какой-то специальный идентификатор.
...
Рейтинг: 0 / 0
Win_Sock
    #33614614
bender2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Ильич
У меня просто задание такое, что между клиентом и сервером практически стираются границы!
Я просто не знаю как сделать дополнительное соединение, а если клиентов несколько будет.... как это обработать
...
Рейтинг: 0 / 0
Win_Sock
    #33614643
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей ИльичВообще-то по идее наоборот все делается - сервер обслуживает комманды клиента. Для обратных вызовов наиболее гармонично бы сделать второе соединение.
Хватит и одного. Обо всех подключенных клиентах на сервере есть информация. Т.е. сервер всегда может послать команду кокретному клиенту. Единственная неприятность в некоторой ассиметричности. По-видимому надо разработать логический протокол обмена, т.е. что кто посылает и как реагирует на входящие.
...
Рейтинг: 0 / 0
Win_Sock
    #33614664
bender2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как мне отослать сообщение или файл серверу, сервер же должен распознавать их
...
Рейтинг: 0 / 0
Win_Sock
    #33614674
bender2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В произвольный момент времени
...
Рейтинг: 0 / 0
Win_Sock
    #33614701
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bender2002А как мне отослать сообщение или файл серверу, сервер же должен распознавать их
Смотри, как в HTTP организована загрузка файлов на сервер (Например, присоединение аттачей к письмам в веб-интерфейсах).
...
Рейтинг: 0 / 0
Win_Sock
    #33614705
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bender2002А как мне отослать сообщение или файл серверу, сервер же должен распознавать их
Делаешь парсер запросов.
Например, при http-ответе сервера в заголовке ответа прописывается тип передаваемой информации: приложение, текстовый файл, страница html и т.д.
Браузер (клиент) по заголовку распознает тип информации и соответственно ее обрабатывает...
...
Рейтинг: 0 / 0
Win_Sock
    #33615197
bender2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав C. bender2002А как мне отослать сообщение или файл серверу, сервер же должен распознавать их
Делаешь парсер запросов.
Например, при http-ответе сервера в заголовке ответа прописывается тип передаваемой информации: приложение, текстовый файл, страница html и т.д.
Браузер (клиент) по заголовку распознает тип информации и соответственно ее обрабатывает...
Не мне нужно что-то сделать на клиенте, чтобы отослать серверу файл или сообщение, я не могу понять как мне это сделать
...
Рейтинг: 0 / 0
Win_Sock
    #33616357
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bender2002
Не мне нужно что-то сделать на клиенте, чтобы отослать серверу файл или сообщение, я не могу понять как мне это сделатьЕсли я правильно понял...
После соединения с сервером, клиент шлет ему какой-нибудь номер порта и слушает этот порт; сервер коннектится на этот порт (хост известен). Все.
...
Рейтинг: 0 / 0
Win_Sock
    #33616497
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_БалтикаПосле соединения с сервером, клиент шлет ему какой-нибудь номер порта и слушает этот порт; сервер коннектится на этот порт (хост известен). Все.
Ну это через задницу. Если клиент соединился с сервером он может послать ему что угодно через TClientWinSocket->SendBuf и принимать данные через событие OnRead. Сервер всегда имееет список подключенных клиентов Socket->Connections[] и также может посылать (SendBuf) и принимать данные (событие OnClientRead). Т.о. есть все чтобы гонять пакеты в обе стороны.
...
Рейтинг: 0 / 0
Win_Sock
    #33616564
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, pandrew!

p> TClientWinSocket->SendBuf и принимать данные через событие
p> OnRead

бросьте вы эти дурацкие T*WinSocket, используйте нормальные библиотеки

---------------------
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Win_Sock
    #33616652
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pandrewНу это через задницу. Если клиент соединился с сервером он может послать ему что угодно через TClientWinSocket->SendBuf и принимать данные через событие OnRead. Сервер всегда имееет список подключенных клиентов Socket->Connections[] и также может посылать (SendBuf) и принимать данные (событие OnClientRead). Т.о. есть все чтобы гонять пакеты в обе стороны.Через задницу как-раз TClientWinSocket. Я вообще-то Ws2_32.lib имел ввиду.
...
Рейтинг: 0 / 0
Win_Sock
    #33617871
bender2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, я вроде бы разобрался
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Win_Sock
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]