Entwickler-Ecke

Internet / Netzwerk - Testen ob Server offen ist


RAR - Mi 02.06.04 21:21
Titel: Testen ob Server offen ist
Moin erstmal,
also ich hab vor kurzem mit Delphi angefangen und wollte nun mal ein kleines Spiel Programmieren.
Bloß mein Problem ist das ich nicht weiß wie ich herausfinden kann, ob der Gegner schon den Server geöffnet hat.

ich sag schon mal thx im voraus :D


hallo - Mi 16.06.04 15:18

Also:
wenn du über TServersocket und TClientsocket verbindest, mach einfach einen Verbindungsversuch! (try except end;)


maxk - Mi 16.06.04 15:45


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
uses WinSock;
// Das ist ein Copy&Paste, für Variablenfehler wird nicht gehaftet  :wink: 
function Connectable(Port:integer):boolean;
var ASocket:integer;
    SocketAddr:SOCKADDR_IN;
begin
 Result:=False;
 ASocket:=Socket(AF_INET,SOCK_STREAM,0);
 if ASocket=INVALID_SOCKET then begin
  ShowMessage('Fehler beim Prüfen von: '+IntToStr(Port)+#13+
   'Socket konnte nicht erstellt werden');
  exit;
 end;
 ZeroMemory(@SocketAddr,SizeOf(SOCKADDR_IN));
 SocketAddr.sin_Family:= AF_INET;
 SocketAddr.sin_Addr.S_Addr:=ntohl(IP);
 SocketAddr.sin_Port:=htons(Port);
 Result:=Connect(ASocket,SocketAddr,SizeOf(SocketAddr))<>SOCKET_ERROR;
 CloseSocket(ASocket);
end;