Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > SOCKETS


Автор: Mach3 10.12.2008, 20:03
Привет...
Суть в следующем:
Открываю и прослушиваю сокет, собираю команду из букв, запускаю процедуру выполнения команды...
Код

var
   s1,s2:longint;
   server:sockaddr_in;
   b:byte;
   comm,s:string;
   i:integer;

begin
...
 s1:=socket(AF_INET,SOCK_STREAM,0);
   server.sin_family:=AF_INET;
   server.sin_port:=htons(1837);
   server.sin_addr.s_addr:=htonl(INADDR_ANY);
   bind(s1,server,sizeof(server));
  while comm<>'close' do begin
      comm:='';
      listen(s1,1);
      s2:=accept(s1,niL,nil);
          recv(s2,b,2,0);

         while b<>13 do begin
            comm:=comm+chr(b);
            recv(s2,b,2,0);
         end;

         StartCommand(comm);


посылаем команду серверу:
Код

<?php 
$fp = stream_socket_client("tcp://127.0.0.1:1837", $errno, $errstr,30); 
if (!$fp) { 
    echo "ERROR: $errno - $errstr<br />\n"; 
} else { 
    fwrite($fp, "getfile"); 
    fclose($fp); 
} 
?>  

Никак не пойму что ни так делаю...
Пытался отследить что приходит на сервер: gtil (вставлял в цикле showmessage(chr(b));)
И вроде как зацикливается...
Вобщем подскажите в чем может быть проблема..
Заранее благодарен...

Автор: Mach3 10.12.2008, 20:38
может как-нибудь по другому можно условие циклу дать...
?!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)