Здравствуйте, koyote, Вы писали:
K>пишу клиент — серверную прогу. Реализую через компоненты TClientSocket и TServerSocket. Клиент читает и пишет в режиме Blocking, т.е. Через TWinSocketThread для чтения сообщений сервера код следующий (он работает по обработке события OnConnect)
K>Но клиент получает какуюто абюрокадабру, хотя сервер получает слово "hello" нормально, подскажите что делать. Заранее благодарен
проблема в том что ты отправляешь не тот тип
K> sktStream.Write('hello',5);
нужно передавать хотябы массив символов, к примеру вот так это должно работать:
procedure TForm1.sktConnect(Sender: TObject; Socket: TCustomWinSocket);
const
Temp = 'hello';
var s: PChar;
i:integer;
Buff: array [0 .. MAXPATH] of char;
begin
for i := 0 to Length(Temp) do
Buff[i] := Temp[i + 1];
Memo1.Lines.Add('Connection complite');
sktStream:=TWinSocketStream.Create(Socket,6000);
sktStream.Write(Buff,Length(Buff));
while not sktStream.WaitForData(100) do
Application.ProcessMessages;
i:=sktStream.Read(s,1);
Memo1.Lines.Insert(0,s);
end;
и соответственно на сервере тоже отправлять не конст строку 'hello'(к примеру).
... << RSDN@Home 1.1.3 beta 1 >>