если у кого есть примеры работы с пайпами на делфи, киньте их сюды
желательно чтобы была синхронизация между клиентом и сервером, ну т.е. пока сервак не считал данные, посылающий поток не резумился, ну короче вы понели)
я ваще так подумал, проще будет при отправке суспендить поток, а резумить тока по ответу от сервера, но блин, поток не резумится, крт. секции не робят, мутекс не робит, ваще хрень какая-то)
delphi Код:
procedure TPipeClient.Answer;
begin
ReleaseMutex(hMutex);
end;
procedure TPipeClient.Send(buf:string);
var
rc:boolean;
begin//if not FConnected then exit;
rc:=WriteFile (hPipe, pointer(buf)^, Length(buf), bytesWritten, @OverLapWrt);
ifnot rc thenifGetLastError = ERROR_IO_PENDING then
WaitForSingleObject (hEventWrt, INFINITE)else FConnected:=false;
hMutex:=CreateMutex(nil, true, 'SendMutex');
ifGetLastError = ERROR_ALREADY_EXISTS then
WaitForSingleObject (hMutex, INFINITE);
end;
это это не робит, ему пох! он нече не ждет никакие мюьтексы!
Добавлено через 1 час 12 минут
пасаны, че я не так делаю)
Добавлено через 12 минут
ыы, семафор робит))
__________________ Начало.
Последний раз редактировалось supernewbie, 04.06.2011 в 18:20.
Причина: Добавлено сообщение
Добавлено через 39 минут
пля короче это какой-то херовый способ синхрона, если клиент и сервер одновременно пошлют мессаджи друг другу то оба будут ждать друг от друга ответов, и вот я хз..
Добавлено через 6 минут
короче хз, при быстром обмене месаджами происходит висяк(
__________________ Начало.
Последний раз редактировалось supernewbie, 04.06.2011 в 21:52.
Причина: Добавлено сообщение