Подскажите, пожалуйста, в Borland C++ Builder 6.0 существует возможность отправки пакета по определенному адресу (IP) в сети? В составе свойств какого-либо компонента. Или эту функцию нужно вручную прописывать? Желательно, чтоб это было в свойствах Servera. Чтоб он отрпавлял пакет не сразу всем, а только какому-то конкретному адресату. У меня уже такая мысля появилась, отправлять сразу всем, а в клиентах сделать фильтр, который примет и запишет файл на диск, на локальном компе, только если перед пакетом стоит IP этого компа. Спасибо.
Где у них возможность отправки по определенному адресу? Есть стандартный метод? Или вручную делать? TServerSocket - отправляет сразу всем. Так? TClientSocket - настроен на IP определенного сервера. Так?
TClientSocket`ом цепляешься к серверу а TServerSocket сам всем ниче не посылает, если всем то ты должен сделать типа такого что нибудь Код (Text): for (int i=0; i<ServerSocket->Socket->ActiveConnections; i++) { ServerSocket->Socket->Connections[i]->SendText(Buf); } ну и события соответствующие обрабатывать Можно поглядеть для примера исходники чата какого нибудь.
SUMASBROD, мне наоборот нужно конкретному адресату. Клиент отправляет клиенту через сервер. Сервер принимает от отправителя, регестрирует, и посылает адресату. По примеру, в исходнике, все соединения, на сервере, хранятся в "ServerSocket->Socket->Connections"? Так? Извини, как прочитать все соединения и послать выборочно?
Ну в принципе можно так: Код (Text): AnsiString DestIP = "dest IP"; for (int i=0; S->Socket->ActiveConnections; i++ ) { if (S->Socket->Connections[i]->LocalAddress == DestIP) { ServerSocket->Socket->Connections[i]->SendText(Buf); } } Или так Код (Text): char *DestIP = "dest IP"; for (int i=0; S->Socket->ActiveConnections; i++ ) { if (!strcmp(inet_ntoa(S->Socket->Connections[i]->Addr.sin_addr),DestIP)) ServerSocket->Socket->Connections[i]->SendText(Buf); } } Кстати, в справке Билдера есть нормальное описание этих компонентов, можно еще про Winsock почитать, так что RTFM
Уточняю что понял: Код 1. Присвоили переменной требуемый нам адрес. AnsiString DestIP = "dest IP"; Проверяем все соединения на наличие требуемого адреса. for(int i=0; S->Socket->ActiveConnections; i++) Если требуемый адрес на связи, if(S->Socket->Connections->LocalAddress == DestIP) Отправить текстовый пакет. ServerSocket->Socket->Connections->SendText(Buf); Уточнение: 1. Текстовый пакет отправится только по требуемому нам адресу? По другим адресам не отправится? 2. Это кодировка серверной части? 3. Как со стороны клиента, дать понять серверу, по какому адресу перенаправить пакет? Перед отправкой пакета, со стороны клиента, нужно вначале отправить требуемый нам адресс? Вот так: Код (Text): Form1->Client->Socket->SendText("191.154.10.17"); а потом уже отправлять сам пакет? Сервер принимает сначала адрес, вставляет его в DestIP, потом принимает файл и перенаправляет его. Так? Код 2. Строки 1 - 2 без изменений. Если в соединениях сервера присутствует активное соединение с требемым нам IP, Строка 4 без изменения. Я все правильно понял?
Ну в принципе да, только лучше наверное придумать какой нибудь протокол для передачи информации типа 1 первоначально на сервер - "destination <IP>" 2 ответ с сервера - "ОК" 3 информация о сообщении, типа файл, текст, или еще чего - "content:file, name:<имя>" 4 ответ с сервера - "ОК" 5 ну и до конца файла или сообщения посылаешь его 6 в конце долепить что то типа идентификации о конце передачи и контрольную сумму 7 ответ с сервера об удачной или нет передаче или сообщения файла Навороить можно что угодно, на что фантазии хватит =)
Посмотрите, пожалуйста, пытаюсь соорудить что-то на типа протокола: Сервер: Код (Text): Form1->Client->Socket->SendText("50.15.100.107"); Клиент: Сервер: Теперь мне нужно принятый клиентом IP направить в переменную, а потом с сервера, опять направить поток, но на этот раз уже файл. И не получается. Не понимаю как разделить два потока. Как первую принятую строку направить в переменную, а второй поток в файл?
советую почитать какю-нибудь книжку по ООП языку. Причем фундаментальную. А то большая часть высказываний - бред.
n0name, какую книжку? Бред, бред - только и слышу. Может это у тебя бред? Ни хочешь помочь, так не гадь. И проичем сдесь ООП? Я его что незнаю? Я не понимаю устройство сетевой передачи. По протоколам и без. Книгу какую?
censored, а какой? Я ни шиша ни врублюсь в эту парашу виндовую. Била гейтса повесить надо, сволочь, на заборе