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

Вниз

склейка пакетов в сокете   Найти похожие ветки 

 
malyar   (2007-04-05 23:20) [0]

всем привет
народ внесите ясность в работу сокетов

имеется serversocket работающий в nonblock режиме
все данные которые он получает от разных клиентов
заносятся в одну глобальную переменную (buf:string)

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
 Socket: TCustomWinSocket);
var s:string;
 begin
  s:=socket.ReceiveText;
  if s = "" then exit;
 buf:=buf+s;
 end;
----------------------------------------------
предположим клиент1 передает на сервер "111111111111111"
предположим клиент2 передает на сервер "222222222222222"

возможна ли ситуация когда в переменоой buf данные перемешаются
что типа "11112211222221111112222" ?

или всегда будут "111111111111111222222222222222" ?

тобиш возможно-ли возникновение события ServerSocket1ClientRead
пока клиент не передал все данные посланные командой  sendtext ?


 
SlymRO ©   (2007-04-06 07:00) [1]

malyar   (05.04.07 23:20)
11112211222221111112222

именно так
один Send  может вызвать множество Read и наоборот
множество Send может вызвать один Read


 
medved_68 ©   (2007-04-06 09:03) [2]


> возможна ли ситуация когда в переменоой buf данные перемешаются
>
> что типа "11112211222221111112222" ?

Нет, если только сам перемешаешь при передаче. :)
> или всегда будут "111111111111111222222222222222" ?

Да. В каком порядке послал, в таком и получишь, а вот в одном пакете или в нескольких - зависит от количества передаваемого.


 
Сергей М. ©   (2007-04-06 09:16) [3]


> предположим клиент1 передает на сервер "111111111111111"
> предположим клиент2 передает на сервер "222222222222222"
>
> возможна ли ситуация когда в переменоой buf данные перемешаются
> что типа "11112211222221111112222" ?


Да, возможна - буфер-то у тебя один на всех клиентов !
А должен быть индивидуальный буфер для каждого клиента.



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

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

Наверх




Память: 0.45 MB
Время: 0.037 c
15-1195017660
Fin
2007-11-14 08:21
2007.12.16
Запуск программ без цифровой подписи в Viste.


2-1195461809
misha_gr
2007-11-19 11:43
2007.12.16
BDS2006 расположение окошек.


2-1195670411
greengeneral
2007-11-21 21:40
2007.12.16
MaxLength в StringGrid


1-1190714064
Илья_С
2007-09-25 13:54
2007.12.16
Фокус ListView


11-1181380412
mdw
2007-06-09 13:13
2007.12.16
Версия 2.65





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский