ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
1386
1386
EMPFEHLEN
-
Hallo,
ich hab heute versucht eine Winsock Anwendung zu schreiben, mit der ich aber immer nur einmal zu einem Server konatktieren kann, dann muss ich den Computer neustarten.
Ich hab aber Null ahnung woran das liegen könnte.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
if((WSAStartUp($101,wsa))<>0)then begin showmessage('WSA funktioniert nicht' + inttostr(WSAGetLastError())); end else begin showmessage('WSA funktioniert'); end; s:=winsock.socket(AF_INET,SOCK_STREAM,0); if(s=INVALID_SOCKET)then begin showmessage('Fehler beim Socket erstellen'); end else begin showmessage('Socket erstellt'); end; addr.sin_family:=AF_INET; addr.sin_port:=htons(80); addr.sin_addr.S_addr:=inet_addr('127.0.0.1'); if((winsock.connect(s,addr,sizeof(TSockaddr)))=SOCKET_ERROR)then begin showmessage('Kein Kontakt!'); end else begin showmessage('Kontakt hergestellt!'); end; winsock.closesocket(s); WSACleanup();
Das ist meine Verbindungsroutine.
Kann aber eben nur das erste mal zu einem Server kontaktieren, um noch einmal zu einem Server zu kontakten muss ich den PC neustarten.
Danke für eure Hilfe.
Gruß
cesupa
-
Mich würde zunächst interessieren, wieso du eine IP-Verbindung aufbauen willst. Wieso nicht TCP? Mit IP kannst du so ziemlich gar nichts anfangen, es sei denn, du willst hier dein eigenes Transmission-Protokoll proggen. Das wäre aber eher was für Profis
Daher mein Vorschlag, zunächst mal ein TCP-Socket zu erstellen:
Der Wert 0 bedeutet -- keine Ahnung, ob du das weißt -- IPPROTO_IP.Code :1
s:=winsock.socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
Ein guter Rat: Verwende mal die Konstanten, die dafür vorgesehen sind. Du trägst an manchen Stellen Zahlen ein. Das macht keinen Sinn und ist fehleranfällig. In dieser Zeile:
würde ich an deiner Stelle auf NO_ERROR prüfen und nicht auf 0, sonst weiß niemand, was du meinst.Code :1
if((WSAStartUp($101,wsa))<>0)then
Wird denn überhaupt die Verbindung korrekt beendet, nachdem sie aufgebaut wurde?
-Gawayn
Ähnliche Themen
-
Dateiübertragung per Winsock funktioniert nicht (viel Code!)
Von XanRaZoR im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 10.11.07, 18:29 -
Datenbank-Abfrage funktioniert nur einmal...?
Von phil83 im Forum PHPAntworten: 2Letzter Beitrag: 04.09.06, 14:09 -
Animation funktioniert nur einmal
Von PsychoCat im Forum Flash PlattformAntworten: 1Letzter Beitrag: 18.08.05, 17:14 -
replace() funktioniert nur einmal?
Von sam im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 14.10.04, 14:21 -
Datenbankabfrage funktioniert nur einmal
Von mR.fLopPy im Forum ASPAntworten: 1Letzter Beitrag: 20.05.04, 21:59





Zitieren
Login





