Einzelnen Beitrag anzeigen

Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#6

Re: Winsock , send/recv, wie?

  Alt 20. Jun 2006, 00:46
Hallo xxl1,
Du musst nach dem Erstellen des Sockets natürlich erst mal zum Server connecten:
Delphi-Quellcode:
function TClient.Connect(const IP: string; Port: Word): Boolean;
var
  sa: SOCKADDR_IN;
  HostInfos : PHostEnt;
begin
  ZeroMemory(@sa, SizeOf(sa));
  sa.sin_family := AF_INET;
  sa.sin_port := htons(Port);
  sa.sin_addr.S_addr := inet_addr(PChar(IP));
  { nicht notwendig zum connecten
  HostInfos := gethostbyaddr(@sa.sin_addr.S_addr, SizeOf(sa.sin_addr.S_addr), AF_INET);
  if (HostInfos <> nil) then
    Hostname := HostInfos^.h_name;
  }

  Result := (WinSock.connect(FAccSock, sa, SizeOf(sa)) <> SOCKET_ERROR);
end;
Falls du das bereits getan hast, solltest du mithilfe der folgenden Funktion einen string übermitteln können:
Delphi-Quellcode:
// string
function TClient.Send(Data: string): Boolean;
begin
  Result := (WinSock.send(FAccSock, Data[1], Length(Data), 0) > 0); // SOCKET_ERROR = -1
end;
// PChar
function TClient.Send(Data: PChar): Boolean;
begin
  Result := (WinSock.send(FAccSock, Data[0], Length(Data), 0) > 0); // SOCKET_ERROR = -1
end;
  Mit Zitat antworten Zitat