ReceiveBuf Delphi7
От: molinero  
Дата: 31.05.11 09:31
Оценка:
Блин, народ разъясните кому не лень. Ни как не пойму...


Клиент отправляет сразу после подключения:

type
TPrefix=record
CMD: Integer;
Size: Integer;
end;

procedure TfMain.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);
var Prefix: TPrefix;
ClientNo: String;
begin
if Socket.Connected then
begin
Prefix.CMD:=CMD_LOGIN;
Prefix.Size:=6;
ClientSocket1.Socket.SendBuf(Prefix,SizeOf(Prefix));
ClientNo:=C_CLIENTNO;
ClientSocket1.Socket.SendBuf(ClientNo,Prefix.Size);
end;
end;

сервер принимает:

procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
var ClientNo: String;
SocketData: TclAssoc;
Prefix: TPrefix;
begin
Socket.ReceiveBuf(Prefix,Socket.ReceiveLength);
case Prefix.CMD of
{CMD_LOGIN} 0:begin
SetLength(ClientNo,Prefix.Size);
Socket.ReceiveBuf(ClientNo,Prefix.Size);
ShowMessage('CMD_LOGIN');
ShowMessage(ClientNo);
ShowMessage(IntTosTr(Length(ClientNo)));
end;
2:;
end;
end;

При вызове SendBuf(ClientNo...) доставляется все как задумано
При вызове SendBuf(ClientNo...) на сервере принимается какая то лабуда...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.