![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
данные от сервера INDY всем клиентам INDY
Sergio77 © (2006-05-05 01:31:00)Подскажите пожклуйста, как это сделать?
Volfram (2006-06-15 16:31:00) [1]Упс, извините за дубль :/
Volfram (2006-06-15 16:30:00) [2]
> Не знаю как в 10-ке, а в 9-ке TIdTCPServer имеет св-во-список
> Threads, каждый элемент которого есть объект класса TIdPeerThread.
> В свою очередь TIdPeerThread имеет св-во Connection: TIdTCPServerConnection,
> у которого есть соответствующие методы приема-передачи.
>
А как получить конкретный TIdPeerThread то? у Threads нет ни свойства Items, ни метода GetItem, только Add и Remove. :(
Volfram (2006-06-15 16:29:00) [3]
> Не знаю как в 10-ке, а в 9-ке TIdTCPServer имеет св-во-список
> Threads, каждый элемент которого есть объект класса TIdPeerThread.
> В свою очередь TIdPeerThread имеет св-во Connection: TIdTCPServerConnection,
> у которого есть соответствующие методы приема-передачи.
>
А как получить конкретный TIdPeerThread то? у Threads нет ни свойства Items, ни метода GetItem, только Add и Remove. :(
Сергей М. (2006-05-06 08:24:00) [4]
> Sergio77
Не знаю как в 10-ке, а в 9-ке TIdTCPServer имеет св-во-список Threads, каждый элемент которого есть объект класса TIdPeerThread. В свою очередь TIdPeerThread имеет св-во Connection: TIdTCPServerConnection, у которого есть соответствующие методы приема-передачи.
Slym (2006-05-06 04:32:00) [5]Sergio77 (05.05.06 18:40) [18]
ServerSocket.Socket.Connections[0].SendText(Memo1.Lines[Memo1.Lines.Count - 1])
Connections[0] - список подключений примени к нему мой [1] пост
но до рабочего сервера при этом далеко...
Eraser (2006-05-06 01:55:00) [6]
> Sergio77 (06.05.06 00:15) [28]
что ты хотел услышать на такой вопрос?
данные от сервера INDY всем клиентам INDY
Sergio77 (05.05.06 01:31)
Подскажите пожклуйста, как это сделать?
извини, ничем конкретнее помочь не могу.
Sergio77 (2006-05-06 00:15:00) [7]поумничал и все...и ничего конкретного
или ты думаешь про книгу токо ты сообразить мог? :)
Eraser (2006-05-05 20:51:00) [8]
> Sergio77
слушай, купи лучше книгу по сетям (и прочитай её) :))
Sergio77 (2006-05-05 19:19:00) [9]
> p.s. я использую d2005 и там TClientSocket и TServerSocket
> такие же как и в d5, думаю, что и d7 в этом ничем не отличается.
> .
запятую вместо вопроса поправил :)
Sergio77 (2006-05-05 19:14:00) [10]короче говоря у стандартных сокетов есть свойства
ServerSocket.Socket.Connections и по ним можно каждому клиенту отослать данные
у клиента есть событие onread - (видимо у клиента есть отдельный поток)
по которому клиент может принимать в любое время..
вот у indy не могу найти ни свойств ни событий подобных..
p.s. я использую d2005 и там TClientSocket и TServerSocket такие же как и в d5? думаю, что и d7 в этом ничем не отличается..
Sergio77 (2006-05-05 19:06:00) [11]я не согласен....там с клиентом
клиент принимать может..и не только ответы..
Плохиш (2006-05-05 19:03:00) [12]
> Sergio77 (05.05.06 18:50) [22]
> код я взял из стандартных примеров delphi 5
В следующий раз указывайте, пожалуйста, версию делфи в самом начале. Речь я вёл о 7й. Что там и как делается в связке TServerSocket/TClientSocket я в данный момент ещё не знаю.
Хотя, судя по коду, они оба реализуют функциональность как сервера так и клиента. А при более внимательном рассмотрении, всё уже описано в Eraser © (05.05.06 18:27) [14]
Sergio77 (2006-05-05 18:50:00) [13]код я взял из стандартных примеров delphi 5
Плохиш (2006-05-05 18:48:00) [14]
> Sergio77 (05.05.06 18:40) [18]
Я не знаю где Вы взяли свой код. Но пример для NetChat рекомендую всё-таки посмотреть, там и строк-то совсем не много.
Sergio77 (2006-05-05 18:47:00) [15]дело тут наверное в другом - просто клиент не сможет принять данные от другого сервера т.к. он присоединент к конкретному...
а сервер может принять много соединений вот, наверное, и вся разница..
Sergio77 (2006-05-05 18:44:00) [16]если тут отсылает сервер то кто принимает ?
при условии что чаты запущены на одной и той же тачке...
p.s. вторые два не задействуют сервера...
Sergio77 (2006-05-05 18:40:00) [17]
> Если сервер сам говорит что-то клиенту, то они в этот момент
> меняются ролями. Т.е. это означает, что в клиенте должна
> быть реализована функциональность сервера. Открываем пример
> из поставки делфи NetChat и что мы там видим? На форме лежат
> компоненты TcpClient1 и TcpServer1. Вот и ответ на твой
> вопрос.
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;
а теперь посмотрим очень внимательно..........
на тот пример
Плохиш (2006-05-05 18:37:00) [18]
> Sergio77 (05.05.06 18:34) [16]
Клиент умеет только принимать ответы на свои запросы. [13] не помогает?
Sergio77 (2006-05-05 18:34:00) [19]
> кому ждать ответ, это тебе виднее, ведущей стороной может
> быть как клиент так и сервер. Единственное отличие клиента
> от сервера в том, что сервер не умеет инициировать соединения,
> а клиент, в свою очередь, принимать.
не умеет принимать ??
пошутил?
Sergio77 (2006-05-05 18:33:00) [20]клиент умеет принимать данные?
вот второй ответ