Re: Сокеты в делфи
От: Yanish  
Дата: 19.02.04 04:40
Оценка:
Здравствуйте, 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 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.