![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Посылка сообщения определенному пользователю [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 все что хочешь