Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TServerSocket & TClientSocket [D6, Win95/98]


electric ©   (2004-07-12 12:36:00) 

Клиент отправил текст на сервер. Как серверу отправить текст ЭТОМУ клиенту (ответить ему) ?


Digitman   (2004-07-21 12:56:00) [1]


> у меня проблема: из стрима приходит всякая лажа


и при этом ты, надо понимать, 100%-но уверен, что клиент передает не "лажу"...


bas   (2004-07-21 12:33:00) [2]

А кто-нить пользовал TWinSocketStream для приема данных на сервере? А то у меня проблема: из стрима приходит всякая лажа. Хотя размер лажи совпадает с отправленым. Все сделал к хелпах и примерах в инете.


SergP   (2004-07-20 22:01:00) [3]


>  [4] tomas   (20.07.04 12:52)
> так попробуй , да ?
>
> procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
>  Socket: TCustomWinSocket);
> Var
>  I : integer;
> begin
>
> For I := 0 to ServerSocket1.Socket.ActiveConnections do
>  begin
>   If ServerSocket1.Socket.Connections[I] = socket then break;
>  end;
>                                                        
>         ServerSocket1.Socket.Connections[I].SendText('Ваше
> сообщение доставлено ...')
> end;


Супер!!! Прям как рвать гланды через задний проход...


VID   (2004-07-20 21:46:00) [4]

tomas ©   (20.07.04 19:28) [11]
А ну тебя нафиг. Я сам в своё время был же таким дауном в сокетах как ты, но во всяком случае не опровергал того, что говорят более знающие люди. А у тебя видимо возраст сказывается, упрямство.

Ну делай по-своему. Я тебе больше не советчик.


tomas   (2004-07-20 19:28:00) [5]


> VID ©   (20.07.04 19:13) [10]

Блин, умен не по годам :-)
Ничего, подрастешь смальца, образумишься ....
Вообще, как правило, за такие посылки рожу бьют однако :-)


VID   (2004-07-20 19:13:00) [6]

tomas ©   (20.07.04 18:36) [9]
Много примеров посылки, говоришь ?
Ну вот ещё один пример посылки в интернете:

http://lleo.aha.ru/na/index.shtml


tomas   (2004-07-20 18:36:00) [7]

Однакось в инете куча примеров посылки сообщения именно таким образом :-)


VID   (2004-07-20 17:06:00) [8]

tomas ©   (20.07.04 16:53) [6]

Мне мой вариант нравиться больше однако ;-)

Да, твой вариант конечно куда смешней будет :) Весёлый такой вариант...


Digitman   (2004-07-20 17:01:00) [9]


> tomas ©   (20.07.04 16:53) [6]
> Мне мой вариант нравиться больше однако


плохой вариант, как бы он тебе не "нравился"
тебе не приходило в голову взглянуть в справку и увидеть там, что sendtext() - это функция? видать, в Борланде дураки работают, раз сделали sendtext() функцией, на результат которой великий tomas попросту пилевать хотел, потому что это ему больше нравится


tomas   (2004-07-20 16:53:00) [10]

Мне мой вариант нравиться больше однако ;-)


VID   (2004-07-20 16:10:00) [11]

tomas   (20.07.04 12:52) [4]
Друг мой, ты конечно вправе извращаться как тебе угодно, но если ты в обработчике procedure TForm1.ServerSocket1ClientRead() напишешь:

begin
 Socket.SendText('Ваше сообщение доставлено, сударь');
end;


то люди будут смотреть на такой вариант с большим пониманием ;) А вот поймёшь ли ты...


tomas   (2004-07-20 12:52:00) [12]

так попробуй , да ?

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
 Socket: TCustomWinSocket);
Var
 I : integer;
begin

For I := 0 to ServerSocket1.Socket.ActiveConnections do
 begin
  If ServerSocket1.Socket.Connections[I] = socket then break;
 end;
                                                                ServerSocket1.Socket.Connections[I].SendText('Ваше сообщение доставлено ...')
end;


Digitman   (2004-07-12 13:53:00) [13]


> electric   (12.07.04 12:53) [2]



> если написать без номера соединения


ему про фому, он про ерему ...

ты читать-то умеешь ? где ты увидел в [1] хоть какой-либо намек на какой-то там "номер соединения" ? где ты увидел в обработчике события OnClientRead параметр с именем ServerSocket ?

Send-метод в этом случае следует вызывать для объекта, переданного тебе 2-м параметром в процедуру-обработчик события OnClientRead ! и имя этого параметра - Socket, а не ServerSocket !


electric   (2004-07-12 12:53:00) [14]

если написать без номера соединения - ServerSocket.Socket.SendText(s) , то возникает ошибка сокета 10057. =(


Digitman   (2004-07-12 12:43:00) [15]

в событии OnClientRead 2-м параметром тебе передан объект TServerclientWinSocket, который отражает контекст уникального соединения с данным клиентом и у которого есть точно такие же send-методы как и у объекта TClientSocket.Socket, которым ты пользуешься передавая данные серверу


Наверх

Титульная страница Поиск, карта сайта Написать письмо