Показать сообщение отдельно
  #11  
Старый 03.05.2010, 09:03
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

PHP код:
uses ScktComp;

procedure TForm1.Button1Click(SenderTObject);
var
  
clientsocketTClientSocket;
  
nowCardinal;
  
//  наши 9 байт
  
data: array [0..8of Char;  //  или Byte
begin
  
//  создаем клиента
  
clientsocket:=TClientSocket.Create(Self);
  try
    
//  имя сервера
    
clientsocket.Host:='ya.ru';
    
//  порт
    
clientsocket.Port:=80;
    
//  используем синхронный сокет
    
clientsocket.ClientType:=ctBlocking;
    
//  устанавливаем соединение
    
clientsocket.Open;
    try
      
//  отправим http запрос на сервер, чтобы он нам ответил что-нибудь
      //  из чего мы прочитаем только 9 байт
      
clientsocket.Socket.SendText('GET / HTTP/1.0'#13#10);
      
clientsocket.Socket.SendText(#13#10);
      //  запомним "время"
      
now:=GetTickCount;
      
//  ждем ответа максимум 5 сек
      
while GetTickCount-now<5000 do
      
begin
        
//  если готовы 9 байт
        
if clientsocket.Socket.ReceiveLength>9 then
        begin
          
//  читаем их
          
clientsocket.Socket.ReceiveBuf(data[0], 9);
          
//  остальное не нужно
          
Break;
        
end;
      
end;
    
finally
      
//  закрываем соединение
      
clientsocket.Close;
    
end;
  
finally
    clientsocket
.Free;
  
end;
  
//  смотрим ответ
  
Memo1.Lines.Add(data);
end
Ответить с цитированием