Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];

Вниз

Передача текста через Tserversocket & TclientSocket ПЛИЗЗ ХЕЛП!!!   Найти похожие ветки 

 
dimich1978   (2003-01-25 15:15) [0]

Мастера плиз помогите запутавшемуся разобраться.
Дело в том что, я никак немогу разобраться с такой ситуацией.
Если клиент отсылает сообщение один раз то все проходит нормально, если же приходится отсылать несколько строк, именно несколько, например:
clientsocket1.Socket.SendText("Привет 1");
clientsocket1.Socket.SendText("Привет 2");
clientsocket1.Socket.SendText("Привет 3");
clientsocket1.Socket.SendText("Привет 4");
То эти строки плюсуются друг к другу и сервер получает:
s:=socket.receiveText;
типа "Привет 1Привет 2Привет 3Привет 4", как можно сделать чтобы сервер принял эти данные в последовательности, а не в сумме.
И еще если поставить временную задержку, то в принципе это срабатывает, но это как мне кажется код с "не человеческим" лицом.
И еще я не понимаю кстати почему ставя задержку sleep(500) все проходит, хотя это думаю от сети зависит?
Если можно или разложите мне по полочкам что все же происходит когда передаются несколько строк , а лучше помогите кодом.
Заранее всем благодарен!!! Пожалуйста помогите!!!


 
neodiX   (2003-01-25 18:51) [1]

Дело в том, что функция SendText не посылает данные, а помещает их во временный сис. буфер, который, как только есть квант свободного проц. времени, пытается отослать данные. Размер буффера можно менять фукнцией setsockopt. Т.к. у тебя четыре фукнции выполняются подряд, то получается, что буффер успевает только наполнятся (так как ты не даешь ему время на отчистку), а как только ты закончил наполнять буффер, все данные из него уже на сомом деле посылаются. Теперь ты понял почему все работает когда ты ставишь задержку.
Так же советую посетить вот эти ссылки, на мои топики с мастерами, на подобные темы:

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1042410307&n=4
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1039282160&n=4


 
VID   (2003-01-26 23:43) [2]

Этот вопрос стар как мир:
найдёшь 100% решение здесь:

http://delphibase.endimus.com/?action=viewfunc&topic=nettransfer&id=10335


 
dimich1978   (2003-01-27 08:42) [3]

Всем огромное спасибо, будем разбираться



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-54066
AlexVit
2003-03-04 08:04
2003.03.17
Как определить, что приложение зависло?


3-53839
Настя
2003-02-24 10:26
2003.03.17
Помогите!!! Нужна таблица в формате Paradox


1-54111
Adolf
2003-03-05 18:35
2003.03.17
Word XP


14-54179
Шишкин Илья
2003-03-01 18:58
2003.03.17
Кто-нибудь тут умеет смотреть 3D-картинки?


1-54045
Frog
2003-03-05 06:37
2003.03.17
Аудио поток в real-time





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский