|
|
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
Пишу клиент-серверное приложение с помощью интерфейса сокетов (TCP) создал сокет на сервере и запустил его на прослушку порта создал сокет на клиенте, коннекчусь к серверу, клиент регистрируется на сервере! Эти два приложения должны обмениваться файлами и сообщениями между собой! На клиенте я создал обработчик команд с сервера, и есть идея, что такой же обработчик надо создать и на сервере. Подскажите, для этого надо создавать дополнительный сокет (для прослушки команд клиента) или хватит одного, созданного на сервере? Или у Вас есть какие-либо идеи, заранее благодарен!!!! Заранее спасибо!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2006, 14:42 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
bender2002Пишу клиент-серверное приложение с помощью интерфейса сокетов (TCP) создал сокет на сервере и запустил его на прослушку порта создал сокет на клиенте, коннекчусь к серверу, клиент регистрируется на сервере! Эти два приложения должны обмениваться файлами и сообщениями между собой! На клиенте я создал обработчик команд с сервера, и есть идея, что такой же обработчик надо создать и на сервере. Подскажите, для этого надо создавать дополнительный сокет (для прослушки команд клиента) или хватит одного, созданного на сервере? Или у Вас есть какие-либо идеи, заранее благодарен!!!! Заранее спасибо!!!!!! Вообще-то по идее наоборот все делается - сервер обслуживает комманды клиента. Для обратных вызовов наиболее гармонично бы сделать второе соединение или делать UDP - нотификации о том, что клиент должен как-то обновить свое состояние или сделать конкретную комманду. Правда, такой протокол не будет нормально тоннелироваться через NAT / IP Masquerading. Если нужна проходимость через NAT, то наверное нужно передавать серверу идентификатор запроса чтобы он в передавал его в ответ, чтобы понять что к чему относится. Для ответов, которые ни к чему не относятся и являются коммандами от сервера клиенту надо будет передавать какой-то специальный идентификатор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2006, 14:52 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
Сергей Ильич У меня просто задание такое, что между клиентом и сервером практически стираются границы! Я просто не знаю как сделать дополнительное соединение, а если клиентов несколько будет.... как это обработать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2006, 14:57 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
Сергей ИльичВообще-то по идее наоборот все делается - сервер обслуживает комманды клиента. Для обратных вызовов наиболее гармонично бы сделать второе соединение. Хватит и одного. Обо всех подключенных клиентах на сервере есть информация. Т.е. сервер всегда может послать команду кокретному клиенту. Единственная неприятность в некоторой ассиметричности. По-видимому надо разработать логический протокол обмена, т.е. что кто посылает и как реагирует на входящие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2006, 15:05 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
А как мне отослать сообщение или файл серверу, сервер же должен распознавать их ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2006, 15:10 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
В произвольный момент времени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2006, 15:13 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
bender2002А как мне отослать сообщение или файл серверу, сервер же должен распознавать их Смотри, как в HTTP организована загрузка файлов на сервер (Например, присоединение аттачей к письмам в веб-интерфейсах). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2006, 15:24 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
bender2002А как мне отослать сообщение или файл серверу, сервер же должен распознавать их Делаешь парсер запросов. Например, при http-ответе сервера в заголовке ответа прописывается тип передаваемой информации: приложение, текстовый файл, страница html и т.д. Браузер (клиент) по заголовку распознает тип информации и соответственно ее обрабатывает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2006, 15:25 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
Станислав C. bender2002А как мне отослать сообщение или файл серверу, сервер же должен распознавать их Делаешь парсер запросов. Например, при http-ответе сервера в заголовке ответа прописывается тип передаваемой информации: приложение, текстовый файл, страница html и т.д. Браузер (клиент) по заголовку распознает тип информации и соответственно ее обрабатывает... Не мне нужно что-то сделать на клиенте, чтобы отослать серверу файл или сообщение, я не могу понять как мне это сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2006, 17:51 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
bender2002 Не мне нужно что-то сделать на клиенте, чтобы отослать серверу файл или сообщение, я не могу понять как мне это сделатьЕсли я правильно понял... После соединения с сервером, клиент шлет ему какой-нибудь номер порта и слушает этот порт; сервер коннектится на этот порт (хост известен). Все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 10:45 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
_БалтикаПосле соединения с сервером, клиент шлет ему какой-нибудь номер порта и слушает этот порт; сервер коннектится на этот порт (хост известен). Все. Ну это через задницу. Если клиент соединился с сервером он может послать ему что угодно через TClientWinSocket->SendBuf и принимать данные через событие OnRead. Сервер всегда имееет список подключенных клиентов Socket->Connections[] и также может посылать (SendBuf) и принимать данные (событие OnClientRead). Т.о. есть все чтобы гонять пакеты в обе стороны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 11:19 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
Привет, pandrew! p> TClientWinSocket->SendBuf и принимать данные через событие p> OnRead бросьте вы эти дурацкие T*WinSocket, используйте нормальные библиотеки --------------------- Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 11:34 |
|
||
|
Win_Sock
|
|||
|---|---|---|---|
|
#18+
pandrewНу это через задницу. Если клиент соединился с сервером он может послать ему что угодно через TClientWinSocket->SendBuf и принимать данные через событие OnRead. Сервер всегда имееет список подключенных клиентов Socket->Connections[] и также может посылать (SendBuf) и принимать данные (событие OnClientRead). Т.о. есть все чтобы гонять пакеты в обе стороны.Через задницу как-раз TClientWinSocket. Я вообще-то Ws2_32.lib имел ввиду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2006, 11:54 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33616564&tid=2031709]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 352ms |

| 0 / 0 |
