Seite 3 von 3

Verfasst: 28.10.2004 01:52
von Tibor
Sag bitte noch mal.
Möchtest du nur prüfen ob da ein Server offen ist,
oder auch Daten versenden?

EDIT:
Vielleicht hilft dir dieser Code.

Code: Alles auswählen

Procedure IsServer(IP$,Port) ;nur echte IP-Adressen verwenden
  version=(2<<8)+1
  If WSAStartup_(version,@was.WSADATA) = 0
    s= SOCKET_(#AF_INET,#SOCK_STREAM,0);
    If s <> #INVALID_SOCKET
      addr.SOCKADDR_IN
      addr\sin_family= #AF_INET;
      addr\sin_port= htons_(Port)
      addr\sin_addr= inet_addr_(IP$)
      If connect_(s,@addr.SOCKADDR_IN,SizeOf(SOCKADDR_IN)) <> #SOCKET_ERROR
        ret= 1
      EndIf
      closesocket_(s)
    EndIf
    WSACleanup_()
  EndIf
ProcedureReturn ret
EndProcedure

Verfasst: 28.10.2004 08:37
von pvmichael
@Tibor:
Ich möchte nur sehen, ob ein Server/Dienst erreichbar ist. Mit Deinem Code versuche ich es mal.

Mir gehts halt im Endeffekt nur darum, dass der Eindruck entsteht, das Programm wäre abgestürzt, weil man ja mit dem Fenster nix machen kann, während der Verbindungsversuch stattfindet.

Verfasst: 29.10.2004 21:12
von PMV
Also mit PureBasicbefehlen geht das wohl nicht anders, weil ja das Programm angehalten wird, bis der Timeout kommt.

Ich weis ja nicht, warum du nicht gerne mit Threads arbeitest ... so lange man weis, was man macht ists genau so, wie ohne ;)

Aber gut, du könntest auch einen Thread starten, wo nur das Fenster, bzw die Windowevents abgefragt werden ... und diesen Thread denn beenden (KillThread()) ... wenn alle Connections durch sind, aber das würde mir eher sorgen machen, da bei KillThread() in der hilfe nicht grade einem mut zugesprochen wird, das zu benutzten :lol:

Also nach meinen infos, bzw das was ich weis, was du möchtest sollte das kein problem sein :D . Aber genau weis ich ja nicht, was du alles in einen thread packen willst. Ich hatte ja schon mal ne Idee gesagt, wie du so wenig "Threadcode" wie möglich benutzten müsstest ;) ... und die Infos dann auslesen. Aber im endefekt musst du das eh selber entscheiden.

Und eine andere möglichkeit sehe ich da leider nicht. Zumindest nicht mit der PureBasic Network Lib.

Aber vielleicht kannste ja mit der API was anfangen ... wenns dir dabei wohler ist und es auch wirklich funktioniert

MFG PMV

Verfasst: 19.04.2005 23:16
von Skywalker
Was ist eigentlich aus dem Thema hier geworden?
Stehe nämlich gerade vor der selben Problematik.

Gruß
Thomas

Verfasst: 20.04.2005 07:31
von 125