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

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

TspClient и TspServever [D7, XP]


Страницы:   1 2 3 4 5 6 7 8

kostyl_kostyl ©   (2009-08-12 12:38:00) 

Добрый день. Прошу показать пример обмена сообщениями сервера и клиента с помощью этих компонентов. У меня не выходит.
Я пишу:

procedure TForm1.TcpServer1Accept(Sender: TObject;
 ClientSocket: TCustomIpClient);
begin
 TcpServer1.Sendln('Ответ');
end;
//-----
 if TcpClient.Connect then
 begin
   TcpClient.Sendln('Запрос');
   Response := TcpClient.Receiveln;
   ShowMessage(Response);
 end
 else
   ShowMessage('Нет ответа');
 TcpClient.Disconnect;    

В лучшем случае  выдает пустую строку. В худшем зависает на Response := TcpClient.Receiveln;. Помогите разобраться.
Заранее благодарю.


Сергей М.   (2009-08-12 15:15:00) [121]


> склоняюсь к мнению что регистр проца


Интересно, на чем основано такое мнение ?
Вероятно на том что в проце якобы есть какие-то там "регистры" какого-то там невероятно большого размера ?)


kostyl_kostyl   (2009-08-12 15:03:00) [122]


> А как думаешь, что из себя есть ClientSocket.Receiveln?

Пока склоняюсь к мнению что регистр проца. А вообще без понятия.


Сергей М.   (2009-08-12 15:01:00) [123]


> уже в ClientSocket.Receiveln ничего не будет?
>


Да.
Все что на момент этого вызова находилось во внутреннем буфере принимаемых данных, ты этим вызовом оттуда вычерпал. И если нигде не сохранил, то навсегда потерял.


Dennis I. Komarov   (2009-08-12 14:51:00) [124]

А как думаешь, что из себя есть ClientSocket.Receiveln?


kostyl_kostyl   (2009-08-12 14:49:00) [125]

Когда я делаю там if ClientSocket.Receiveln <> '' и условие выполняется у меня уже в ClientSocket.Receiveln ничего не будет?


Dennis I. Komarov   (2009-08-12 14:46:00) [126]


> А.., типа Get чистит буфер?

Кто, где, кого чистит?


kostyl_kostyl   (2009-08-12 14:36:00) [127]


> Dennis I. Komarov ©   (12.08.09 14:32) [28]

А.., типа Get чистит буфер?


Dennis I. Komarov   (2009-08-12 14:32:00) [128]


> И что делать то? Как правильно?

Очевидно, что перед тем как сравнивать, надо сохранить куда-нить полученное...


Сергей М.   (2009-08-12 14:29:00) [129]


> Десяток


Десяток - это курам на смех.
Серьезные проблемы возникнут при тысяче-другой клиентов.


kostyl_kostyl   (2009-08-12 14:25:00) [130]


> Сколько конкретно ?)

Десяток. Это я сказал, указывая что не один.

> Вот сдесь, все что получил твой сервер кануло в небытие

И что делать то? Как правильно?


Сергей М.   (2009-08-12 14:16:00) [131]


> У меня же клиентов много


Сколько конкретно ?)


Сергей М.   (2009-08-12 14:15:00) [132]


> Аргументы?


В режиме bmThreadBlocking сервер работает с каждым из клиентов в отдельном доп.потоке.
"Зависание" одного из обслуживающих доп.потоков не влияет на работоспособность прочик доп.потоков и, соотв-но, на успешное обслуживание прочих клиентов.


Palladin   (2009-08-12 14:12:00) [133]


>  [17] Сергей М. ©   (12.08.09 13:43)

ну тык он(сервер) посылает, то в OnAccept, а клиент то еще даже не в курсе что соединение установилось... куда там чего прийдет на клиенте...


Dennis I. Komarov   (2009-08-12 14:12:00) [134]


> if ClientSocket.Receiveln <> '' then

Вот сдесь, все что получил твой сервер кануло в небытие, или ему не важно что какой-то клиент там чего-то прислал?


> Аргументы? У меня же клиентов много. Могут не достучаться
> наверно ж?

А какие нужны? Напиши и посмотри если не веришь...


kostyl_kostyl   (2009-08-12 13:50:00) [135]


> Не повесишь.

Аргументы? У меня же клиентов много. Могут не достучаться наверно ж?


Сергей М.   (2009-08-12 13:47:00) [136]


> писал туда ShowMessage


Нельзятуда писать ShowMessage при BlockMode = bmThreadblocking !


Сергей М.   (2009-08-12 13:46:00) [137]


> я вайлом не повешу сервер?


Не повесишь.


kostyl_kostyl   (2009-08-12 13:44:00) [138]


> пока на сервере не отработает OnAccept

Кстати да. Я это заметил когда писал туда ShowMessage...


Сергей М.   (2009-08-12 13:43:00) [139]


> Palladin ©   (12.08.09 13:41) [16]


А.. ну да ..

Ну дык а какое дело серверу до событий на стороне клиента ?


Palladin   (2009-08-12 13:41:00) [140]


> [14] Сергей М. ©   (12.08.09 13:38)

туда, это описание события TTCPServer.OnAccept, последнее предложение, и гласит оно, на сколько я понял, о том что соедиенение у клиента не установится пока на сервере не отработает OnAccept


Страницы:   1 2 3 4 5 6 7 8

Наверх

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