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

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

Посылка сообщения определенному пользователю [D5, Win2k]


StelZ ©   (2002-03-04 23:05:00) 

Привет, Мастера! Скажите, пожалуйста, как через ServerSocket можно послать текст (или файл) клиенту с определенным IP-адресом?


Song   (2002-03-17 10:07:00) [1]

Не знаю как Вы собираетесь отправить через TServerSocket, я Вам приведу кусок кода как я посылаю через TClientSocket:


With ClientSocket1 Do
Begin
Port:=...;
Host:=...;
Open;
While not Active Do Application.ProcessMessages;
Socket.SendText("...");
Close;
End;


Adder   (2002-03-17 04:43:00) [2]

See
\PROGRAM FILES\BORLAND\Delphi5\Demos\Internet\Chat

procedure TChatForm.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_Return then
if IsServer then
ServerSocket.Socket.Connections[0].SendText(Memo1.Lines[Memo1.Lines.Count - 1])
else
ClientSocket.Socket.SendText(Memo1.Lines[Memo1.Lines.Count - 1]);
end;


Это случайно не похоже на то, что ты хотел ?


StelZ   (2002-03-17 04:01:00) [3]

>Я так понимаю, что посылают данные через TClientSocket. Через
>TServerSocket их принимают... Если это то, что надо могут
>сказать как... Странно как-то вы всё объясняете.

Наоборот. Через TServerSocket отправляют, а через TClientSocket принимают.


Song   (2002-03-16 15:59:00) [4]

Я так понимаю, что посылают данные через TClientSocket. Через TServerSocket их принимают... Если это то, что надо могут сказать как... Странно как-то вы всё объясняете.


Anatoly Podgoretsky   (2002-03-16 12:54:00) [5]

Да код он просит как что то послать, а конкретному это так для слова, дайте код посылки сообщения на любой абстрактный адрес порт, просто он так сумбурно объясняет.


StelZ   (2002-03-16 08:13:00) [6]

Охохох... странно - неужели я так плохо объясняю, что так не понятно =)))))))))????

>Если ты собираешься посылать через ServerSocket значит клиенты к
>нему присоеденены..то ты можешь в цикле пробежаться по списку
>коонектов и у кого нужный тебе IP получишь номер коннекта и
>пошлешь ему...

КАК ПОСЛАТЬ??? КАК??? КАК??? КАК??? ДА!!! ДА!!! ДА!!! ИМЕННО ТАКОЙ СЛУЧАЙ!!! КАК??? Приведите, plz, кусок кода...


Ghost.   (2002-03-15 08:54:00) [7]

Если ты собираешься посылать через ServerSocket значит клиенты к нему присоеденены..то ты можешь в цикле пробежаться по списку коонектов и у кого нужный тебе IP получишь номер коннекта и пошлешь ему...но из твоего обьяснения мне кажется, что тебе нужен не сервер сокет..т.к. соединения я так понял не установлены..


StelZ   (2002-03-15 00:39:00) [8]

Мастера! :( Помогите plz... Если невполне полно объяснил, то поясняю. Есть группа юзеров, находящихся в онлайне. Есть список (StringList) этих юзеров и их IP-шники (список обновляется после выхода-входа юзера по средствам опроса всех подключенных пользователей). Серверу нужно послать через свой ServerSocketсообщение юзеру с конкретным именем. Он ищет имя этого юзера в списке, затем достает из этого списка IP, соответствующий данному пользователю и дальше он должен послать данному юзеру с данным IP данное сообщение через свой ServerSocket.

Вот именно с тем, как послать юзеру (у которого известен IP и который подключен к системе) сообщение и возникает проблема! При этом способ отсылки всем пользователям сообщения с пометкой о том, какому юзеру оно адресовано и чтобы клиентская часть уже сама разбиралась - ей это, или не ей, не годится. Нужно именно так, чтобы было послано сообщение ТОЛЬКО данному пользователю.

Пожалуйста, подскажите, Мастера!


StelZ   (2002-03-09 04:53:00) [9]

Wizard_Ex, пришли, пожалуйста!
Мыло: stelz_2000@hotbox.ru


Wizard_Ex   (2002-03-07 17:38:00) [10]

to StelZ ©
Могу дать поюзать неплохой чат в котором есть что тебе нужно


Ghost.   (2002-03-07 09:30:00) [11]

Тебе же сказали про получение адреса при коннекте, а потом в цикле найди номер коннекта и шли туда


StelZ   (2002-03-07 00:05:00) [12]

Но как отправить сообщение на конкретный IP подключенного клиента через ServerSocket???


Aleks1   (2002-03-06 03:34:00) [13]

Если клиент и не собирается коннектиться, то как вообще его можно достать?
Можно послать что-то на некий комп в сети, но "несконнектившийся" клиент его не получит!.


snoup   (2002-03-06 03:00:00) [14]

Только воспользуйся етими компонентами TNMStrmServ и TNMStrm!
from snoup


snoup   (2002-03-06 02:58:00) [15]

Обработчик для клиента:

var MyStream:TMemoryStream;
begin MyStream:=TMemoryStream.Create;
MyStream.LoadFromFile("c:\windows\рабочий стол\demo.txt"); NMStrm1.PostIt(MyStream);
MyStream.Free;
end;

Обработчик для сервера:

procedure TForm1.NMStrmServ1MSG(Sender: TComponent; const sFrom: String; strm: TStream);
var MyStream:TMemoryStream;
begin
MyStream:=TMemoryStream.Create;
MyStream.CopyFrom(strm,NMStrmServ1.BytesTotal); MyStream.SaveToFile("c:\windows\рабочий стол\demo2.txt");
end;

from snoup


StelZ   (2002-03-06 00:17:00) [16]

>Когда клиент коннектится ты можещь узнать его ip
>ServerSocket1.Socket.Connections[0].RemoteAddress;
>и потом посылай на данный connections все что хочешь

В этом-то и проблема - КАК послать информацию на конкретный IP клиента, подключенного к системе?


Reindeer Moss Eater   (2002-03-05 09:27:00) [17]

Все наоборот.
Клиент и не собирался подключаться, но ему надо отправить сообщение.
Слать надо TClientSocket"ом на TServerSocket оповещаемого клиента


Eraser   (2002-03-05 09:20:00) [18]

Когда клиент коннектится ты можещь узнать его ip
ServerSocket1.Socket.Connections[0].RemoteAddress;
и потом посылай на данный connections все что хочешь


Наверх

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