Вниз
Скачать: CL | DM;

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

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
15-1195313794
@!!ex
2007-11-17 18:36
2007.12.16
Перевод приложения под LInux.


15-1195215176
sds
2007-11-16 15:12
2007.12.16
Справочная служба аэропорта


4-1180497793
AndreyRU
2007-05-30 08:03
2007.12.16
Вне зоны доступа! WM_MOUSEMOVE


1-1190910204
-Mouse-
2007-09-27 20:23
2007.12.16
Проблема с выделением памяти под большой массив


2-1195632186
Шмелъ
2007-11-21 11:03
2007.12.16
HTML SELECT Object




   Наверх