Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Ошибка при отправке сообщения сервером клиенту


Автор: Dmitry05 23.11.2005, 19:38
Создал Сервер и Клиент на основе компонентов ServerSocket/ClientSocket. Приотправке клиентом сообщения серверу

ClientSocket.Socket.SendText(Edit2.Text);

проблем нету, все отправляется... а вот при отправке сообщения сервером клиенту(или всем клиентам, точно не знаю)

ServerSocket.Socket.SendText(Edit1.Text);

возникает ошибка.. как правильно отправлять сообщения сервером?

Автор: DemoCode 26.11.2005, 13:35
Код

 for I:= 0 to ServerSocket.Socket.ActiveConnections -1 do 
   begin
     ServerSocket.Socket.Connections[I].SendText(Edit1.Text);
   end;

Автор: z-END 26.11.2005, 13:42
DemoCode это тут причем?

Цитата(Dmitry05 @ 23.11.2005, 19:38)
возникает ошибка.. как правильно отправлять сообщения сервером?

smile
сервер служит для приема сообщений а клиент для отправки, ок?

Автор: DemoCode 26.11.2005, 13:45
Цитата(z @ 26.11.2005, 14:42)
сервер служит для приема сообщений а клиент для отправки, ок?


Но ведь, Dmitry05 пишет что
Цитата
вот при отправке сообщения сервером клиенту


И у него не отправляется потому что не указано соединение

Автор: z-END 26.11.2005, 13:50
Цитата(DemoCode @ 26.11.2005, 13:45)
И у него не отправляется потому что не указано соединение

а я думаю потому-что клиент не открывает порт для обработки запросов, в отличие от сервера, и поэтому на клиент ничего отправить нельзя, пока там не будет установлен сервер

Автор: DemoCode 26.11.2005, 13:56
Цитата(z @ 26.11.2005, 14:50)
на клиент ничего отправить нельзя, пока там не будет установлен сервер


Разве нельзя отправить сообщение от сервера к клиенту? smile


Автор: Демо 26.11.2005, 14:10
Цитата(z @ 26.11.2005, 14:42)
Сервер служит для приема сообщений а клиент для отправки, ок?


Хм. Сервер может принимать и отправлять сообщения.

DemoCode совершенно прав.
Модель Borland подразумевает событийную модель работы с TClientSocket и TServerSocket.

В случае обработки сообщения от клиента в обработчик будет передан клиентский сокет, которому и надо передавать текст.
А список всех активных клиентских сокетов на сервере находится в массиве ServerSocket.Socket.Connections.

Автор: z-END 26.11.2005, 15:11
Цитата
Хм. Сервер может принимать и отправлять сообщения

а клиент принимать? =))

Автор: Демо 26.11.2005, 16:11
Цитата(z @ 26.11.2005, 16:11)
а клиент принимать? =))


Естественно. И даже не могу представить, к чему может быть ирония.

Вообще-то после установления соединения серверный и клиентский сокеты абсолютно равноправны.

Автор: Dmitry05 27.11.2005, 12:28
Да... все получилось, спасибо ))

Автор: DemoCode 28.11.2005, 15:40
Цитата(z @ 26.11.2005, 16:11)
а клиент принимать? =))


И принимать, и отправлять. Основная разница между клиентом и сервером в дельфи, это то, что клиент может установить одновременно только одно соединение с сервером, а сервер, одновременно может быть соединен с несколькими клиентами.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)