Блин, народ разъясните кому не лень. Ни как не пойму...
Клиент отправляет сразу после подключения:
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...) на сервере принимается какая то лабуда...