Seite 1 von 3

Network - bitte testen

Verfasst: 03.03.2006 01:22
von Toshy
Hallo.

Code: Alles auswählen

OpenConsole()
init.l = InitNetwork()
Debug init
PrintN("init="+Str(init))
server.l = CreateNetworkServer(#PB_Any,2222,#PB_Network_TCP)
PrintN("server="+Str(server))
For i = 1 To 20
   Debug "i="+Str(i)
   Ergebnis = OpenNetworkConnection("127.0.0.1", 2222 ,#PB_Network_TCP) 
   ;  Ergebnis = OpenNetworkConnection("192.168.1.100", 2222 ,#PB_Network_TCP) 
   Debug Ergebnis
   PrintN("Ergebnis="+Str(Ergebnis))
Next i
While 1
   Delay(1)
Wend
CloseConsole()
Könntet ihr das mal testen, weder unter WinXP noch Win98 kann ich mehr als 5 Verbindungen aufbauen. Es ist auch egal ob ich das übers netzwerk zu einem anderne Rechner versuche. Maximal 5 Verbindungen.

Ist dies einfach ein Limit (kann ich nicht glauben) oder ein Bug?

Gruß
Thorsten

Verfasst: 03.03.2006 01:46
von ts-soft
1
i=1
13246792
i=2
13246816
i=3
13246840
i=4
13246864
i=5
13246888
i=6
13246912
i=7
13246936
i=8
13246960
i=9
13246984
i=10
13247008
i=11
13247032
i=12
13247056
i=13
13247080
i=14
13247104
i=15
13247128
i=16
13247152
i=17
13247176
i=18
13247200
i=19
13247224
i=20
13247248
WinXP SP2

Verfasst: 03.03.2006 02:29
von Toshy
Danke erstmal an Thomas für die Testdatei.
Was mich wundert, das die Exe die bei dir geht bei mir auf beiden unterschiedlichen Rechnern NICHT geht.
Weder auf dem Win98 noch auf dem XP rechner wird eine sechste Verbindung korrekt aufgebaut. Nach der fünften, die noch aufgebaut wird, kommt keine erneute Verbindung zustande.

Hat jemand eine Idee?
[edit]
Ich wüßte zwar nicht wie, aber ich vermutete das meine Systeme nun das PB-Programm einschränken. Daran kann es aber wohl nicht liegen.
Baue ich direkt nach dem OpenNetworkConnection() ein
CloseNetworkConnection(Ergebnis) ein, so wird trotzdem nach dem fünften erfolgreichen Verbindungsaufbau keine neue Verbindung mehr aufgebaut.

Gruß
Toshy

Verfasst: 03.03.2006 02:48
von ts-soft
Vielleicht liegt es am Verbindungslimit von 10, habs bei mir auf 50 erhöht, mit XP-Antispy. Gilt aber nur für XP

Verfasst: 03.03.2006 03:07
von Cadogan
Also bei mir existiert das gleiche Problem... Ab 5 Verbindungen ist Schluss:

Code: Alles auswählen

1
i=1
10363208
i=2
10363232
i=3
10363256
i=4
10363280
i=5
10363304
i=6
0
i=7
0
i=8
0
i=9
0
i=10
0
i=11
0
i=12
0
i=13
0
i=14
0
i=15
0
i=16
0
i=17
0
i=18
0
i=19
0
i=20
0
Ich benutze XP mit SP1, weitere Daten zu meinem System stehen im Profil.

Verfasst: 03.03.2006 03:26
von Toshy
Auch schon mal ein Danke an dich. Dann existiert es also nicht nur bei mir, sondern ist nachvollziehbar. Also brauche ich die Fehlersuche nicht groß auf meine 2 Systeme auszuweiten.
Das Problem existiert bei mir nicht nur unter Win98 und Win98 unter PB4, es existiert auch unter PB3.94.
Wäre nett, wenn noch ein paar Leute testen.

Verfasst: 03.03.2006 04:27
von Toshy
Hi.

Langsam vermute ich, daß hier doch seit langem ein Bug schlummert bzw. eine Eventualität nicht eingeplant wurde. Bitte testet mal fleißig bei wem der Fehler auftritt. Nun mal folgendes:

Code: Alles auswählen

OpenConsole()
init.l = InitNetwork()
Debug init
PrintN("init="+Str(init))
server.l = CreateNetworkServer(#PB_Any,2222)
PrintN("server="+Str(server))
For i = 1 To 20
   Debug "i="+Str(i)
    Ergebnis = OpenNetworkConnection("127.0.0.1", 2222 ,#PB_Network_TCP) 
   Debug "OpenNetworkConnection()="+Str(Ergebnis)
      PrintN("Ergebnis="+Str(Ergebnis))
   Ergebnis = CloseNetworkConnection(Ergebnis)
   Debug "CloseNetworkConnection()="+Str(Ergebnis)
   
   ;Result = NetworkServerEvent() 

Next i
While 1
   Delay(1)
Wend
CloseConsole()
Fügt man nun "NetworkServerEvent()" ein, der Server also überprüft ob was eingegangen ist, das ausgibt und die (vermutlich) interne Eventliste kürzt, so gibt es keine Probleme mit dem Verbindungsaufbau.
Es scheint so zu sein, das intern irgendetwas "gefüllt" ist und alle Verbindungen ablehnt solange dies nicht abgefragt wurde. Da dies bei dieser geringen Menge aber nicht sinnvoll ist und es NICHT bei allen aufritt (ok, bisher nur bei einem User) vermute ich das es ein Bug ist.

Also Leute, seit so nett und wer das lies einfach mal Code testen (mit und ohne "NetworkServerEvent()" und mal sagen was passiert.

Ich teste zwar unter der aktuellen Version PB4beta5, aber da es auch unter 3.94 auftrat können auch diese User testen.

Vielen herzlichen Dank.
Gruß
Thorsten

Verfasst: 03.03.2006 10:39
von stbi
Friedrichs hat geschrieben:Hat jemand eine Idee?
Ja. Wie Thomas bereits sagte, liegt es bei wahrscheinlich am TCP connection limit. Das hat Microsoft bei XP Home auf 5 und bei XP Pro auf 10 gesetzt. Mit XP Antispy kann das hochgesetzt werden, nur über die Registry lässt sich das nicht ändern, da muss eine Datei gepatcht werden.

PS: Wozu das Limit gut ist:
a) damit sich Viren, Würmer etc. weniger schnell verbreiten :allright:
b) damit FileSharing-Software langsamer läuft :mrgreen:
c) damit Microsoft die wesentlich teureren Server-Versionen verkaufen kann :twisted:

Verfasst: 03.03.2006 15:12
von Toshy
Hättest du genauer gelesen, so wäre dir aufgefallen das es daran NICHT liegt, nicht liegen KANN.
Erstens tritt es nicht nur unter XPSp2 auf, auch unter SP1 und ohne SP, es tritt auch unter Windows98 auf, wo es dieses Limit nicht gibt.
Außerdem tritt das Problem auch auf wenn nur EINE einzige Verbinung offen sein soll. Denn wie schon erklärt tritt der Fehler auch auf, wenn man jede Verbindung sofort beendet, damit bleibt maximal eine Verbindung kurzzeitig offen. Und selbst das Starten dieser einen einzigen Verbindung klappt nicht mehr nach dem fünften Trennen.
Wie ich schon erklärt hatte, scheint es an der Serverfunktion zu liegen.

Ich bin mir also recht sicher, das es NICHT an einem Limit des Betriebssystems oder einer Firewall liegt.

[edit]Kann das mal bitte jemand genau übersetzten? Ich verstehe das nur teilweise / ungenügend. Danke
They are a lot more then warppers, because the Windows API implementation of networking works completly different, there no Events are used for example, and recieve is blocking

Verfasst: 03.03.2006 16:05
von stbi
Friedrichs hat geschrieben:Hättest du genauer gelesen ...
Danke. So gewinnt man Freunde ... /:->