kostenloser Webspace werbefrei: lima-city


Problem mit MSWinsock

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    f********r

    Moin.

    Also ich wollte gerade meine Kenntnisse über MSWinsock ein wenig verbessern.
    Deshalb habe ich mir mal schnell einen Chat zusammengebaut den man sowohl als Server als auch als Client benutzen kann.

    Aber nehmen wir mal an die Verbindung zwischen Server und Client ist hergestellt.
    Also 'winsock.state' gib auch eine '7' zurück. Wenn nun aber der Client die Verbindung beendet, Nun wird bei Server und bei Client '0' ausgegeben, der Server aber nun wieder in den Listen Mode übergeht ('2' wird ausgegeben) und der Client erneut versucht zu Connecten funktioniert dies nicht und im Client wird '9' ausgegeben.

    Nun meine Frage wie kann ich diesen Fehler beheben?


    Danke im Voraus.
    LG, Felix
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich verstehe das Problem nicht! :blah:

    Wenn man den Chat gleichzeitig als Client und als Server verwenden kann, wäre es von Vorteil, mehrere Winsock Steuerelemente darauf zu ziehen ;). Auf meiner löblichen Homepage gibt's dazu ein gaaanz Simples programm, welches lediglich eine Text Nachricht verschickt. Dieses Könnte man dahinngehend aufbohren, in dem man den Client teil auch in den server kopiert & umgekert, (man muss natürlich Ports & CO ändern). Wozu sollten die States dienen?

    Private Sub ws_close()
    Form1.Visible = True
    'wenn verbindung beendet, dann Prog.fenster wieder sichtbar
    End Sub

    Mit WS_Close wird das nach beendetet verbindung ausgeführt.

    In die Private Sub Form_Load()
    ws.LocalPort = 42222
    ws.Close
    ws.Listen
    ' Konfiguration für Winsock
    End Sub

    kommt das, um das "Warten" auf einem garantier freien Port (ws.Close) zu ermöglichen. Merke: ws = hier name fürs steuerelement. Ich hoffe es konnte helfen. Ansonsten mal den Beispiel-Code auf meiner Website ansehen ;)
  4. Autor dieses Themas

    f********r

    Jor ich sollte es mit 2 Winsock Controls probieren.

    Mit dem Befehl winsock.state kann man den Aktuellen Status den Winsock Elemtes erfahren gibt Werte zwischen 1 und 9 Zurück die alle für eine Bestimmte Aktion stehen.
    Zitat
    0 Der Socket ist geschlossen
    1 Der Socket ist geöffnet
    2 Der Socket ist empfangsbereit
    3 Die Verbindung wird aufgebaut
    4 Der Remote-Host-Name wird in eine IP-Adresse umgewandelt
    5 Der Remote-Host-Name wurde in eine IP-Adresse umgewandelt
    6 Der Socket verbindet sich zu dem Remote
    7 Der Socket hat sich zu dem Remote verbunden
    8 Der Remote hat die Verbindung getrennt
    9 Ein Fehler ist aufgetreten


    Also THX.


    LG, Felix


    Das Problem liegt auch bei deinem Beispiel vor,
    Wenn die Verbindung einmal abgebrochen wurde, kann man nicht erneut zum Server Connecten sondern muss den Server neu starten. Und um das geht es mir ;)


    LG, Felix
  5. Asooo

    Dann muss lediglich der Inhalt der Form-Load nochmals ausgeführt werden. Es muss der Port getrennt werden, und dann wieder Verbunden

    Im prinziep also beim server (aus meinem Beispiel)

    ws.Close
    ws.Listen

    In den
    Private Sub ws_close()
    Form1.Visible = True
    'wenn verbindung beendet, dann Prog.fenster wieder sichtbar
    End Sub

    rein =

    Private Sub ws_close()
    ws.Close (wenn nicht schon getan ;) )
    ws.Listen
    End Sub

    Ein Problem könnte nur ungewolltes beenden, also Timeout oder so sein ;).

    Edit: Solche funktionen könnte ich in nem Programm von mir vielleicht auch gebrauchen, aber sobald der PC hinter nem Router sitzt, funzt die direktverbindung nurnoch mit speziellen einstellungen am router (port-weiterleitung & CO) daher bräuchte ich eine art "reverse-Connection", am besten über nen server, wo die clients ihre nachrichten speichern, und gleichzeitig abrufen, also übern simples php-script vielleicht? ^^ .

    Beitrag geändert: 15.7.2007 13:08:02 von erasmuz
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!