PCs brechen Netzwerkverbindung ab?!
Übersicht

Donald AguBetreff: PCs brechen Netzwerkverbindung ab?! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, zu beginn meines progs werden variablen zwischen 2 pcs hin- und hergeschickt. Das funktioniert anfangs gut, doch wenn ich es in einer schleife tue, kommt bei einem pc immer die meldung "Ein Netzwerkkabel ist nicht angeschlossen" in der Startleiste, und der andere PC hängt sich auf und ist nur mit viel Geduld wieder auf die Reihe zu bekommen.
Die Netzwerkverbindung lässt sich aber mysteriöserweise nur mit einem Neustart des PCs wiederherstellen. ![]() ![]() ich hab hier mal eben einen auszug aus dem code: Code: [AUSKLAPPEN] ... ... ... For a = 1 To 15 For b = 0 To 11 WriteByte stream,aktspieler(pc,a,b) Next Next For a = 1 To 15 For b = 1 To 3 WriteString stream,actplayer$(pc,a,b) Next Next WriteByte stream,teamgamestats(pc,12) WriteByte stream,teamgamestats(pc,13) WriteByte stream,teamgamestats(pc,14) Cls orange Text 180,104,"Der Gegner nimmt noch Einstellungen vor..." Text 180,130," - bitte warten -" standgas Select pc Case 1 gegner = 2 Case 2 gegner = 1 End Select For a = 1 To 15 For b = 0 To 11 Repeat byte = ReadAvail(stream) Until byte <> 0 aktspieler(gegner,a,b) = ReadByte(stream) Next Next For a = 1 To 15 For b = 1 To 3 Repeat byte = ReadAvail(stream) Until byte <> 0 actplayer$(gegner,a,b) = ReadString$(stream) Next Next For a = 12 To 14 Repeat byte = ReadAvail(stream) Until byte <> 0 teamgamestats(gegner,a) = ReadByte(stream) Next stream ist naheliegenderweise global als die stream-ID definiert, ansonsten sind denke ich keine erläuterungen notwendig... ach ja, doch. In den functions orange und standgas ist nur die schriftfarbe deklariert. also: warum spinnt die sache bei mir? es ist 100%-ig ein code-fehler, in anderen programmen funzt das netzwerk einwandfrei. ![]() |
||
c64 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Den Fehler in deinem Code kann ich dir so momentan nicht sagen aber
nachdem dein Netzwerk den Ar*** hochgerissen hat deaktiviere es und schalte es wieder ein so musst du EVTL. !! den PC nicht wieder neustarten. Und versuche mal dein Code local auf einem Rechner auszuführen also 2 Instanzen deines Programms im Fenstermodus starten und testen als wenn du es über 2 Rechner machen würdest. Damit kommst du dem Fehler evtl. auf die Spur. mfg c64 |
||
Betreten verboten! Kinder haften für ihre Eltern! |
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich wusste nicht, dass ich das auch auf einem PC laufen lassen kann. Erspart mir einiges ![]() So. Jetzt wirds aber langsam interessant: wenn ich zwei instanzen auf einem rechner starte, funktioniert die geschichte einwandfrei genau so, wie ich's mir vorstelle. Aber warum geht es dann im netzwerkmodus nicht?!? Und was mich auch interessieren würde: wieso wurden in beiden programmen nach dem seedrnd millisecs() exakt die gleichen zufallszahlen ausgewürfelt? eigentlich auch komisch... ist das dann über netzwerk auch so? wäre ja super! aber das erstmal hinten angestellt. Wieso geht es an einem PC und über netzwerk nicht? Kann doch eigentlich nur daran liegen, dass die verbindung zu langsam ist, oder? |
||
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ist die frage denn zu ungenau formuliert? oder fehlen noch erläuterungen zum code? oder ist es im gegenteil zu viel code zum durchlesen?
es ist gar nicht so wichtig, den ganzen code zu durchschauen, mich würde nur interessieren, ob da vielleicht irgend ne zeile drin ist, die möglicherweise tödlich für jedes netzwerk ist ![]() könnte ja sein, so was... kommt schon, wo sind die netzwerk-freaks unter euch ![]() danke AGU |
||
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
1) benutz mal das Ding da (treff ich ![]() 2) Fals es zu lahm ist, teste mit ping und benutzte Notfalls tcptimeouts() |
||
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sorry, aber was soll ich bitte benutzen? Sollte da ein link hin? ![]() |
||
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich meinte den Editbutton -.-
Egen dem Doppelpost^^. Gleich kriegst du wahrscheinlich (wie kürzt man das eigentlich ab?!) von nem Mod aufn deckel^^. Egal. |
||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
petze! ![]() ne, aber mal im ernst: ich will hier wirklich niemanden nerven, aber ich habe das programmieren nun mal nicht erfunden, und mit tutorials und älteren threads komm ich bezüglich TCP net wirklich weit. Kann mir denn niemand helfen? Wäre echt super nett... das mit den tcptimeouts sieht mir deiner formulierung nach zu urteilen auch stark nach der letzten Notlösung aus, damit kann ich irgendwie auch nicht so richtig glücklich werden... ![]() HILFE! |
||
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
war nich bös gemeint ![]() |
||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab die ping-zeit getestet, die ist ordnungsgemäß (wie ichs mir schon dachte) < 1ms.
Als ich es gerade getestet habe, ging beim einen spieler alles optimal, aber bei dem, der zuerst fertig war, hing er an der stelle wo das mit dem "Gegner nimmt noch einstellungen vor...bitte warten..." steht. bringt uns das vielleicht näher an die problemlösung? ![]() |
||
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm... mach mal ein gaaaanz einfaches netz-prog zum testen | ||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hab ich doch schon gemacht, ich mach nicht 2 schritte auf einmal. ![]() Siehe dazu meinen thread von letzter woche. ![]() Das Netzwerk funktioniert, und wie gesagt, es funktioniert auch irgendwie, aber es hängt sich halt immer bei einem spieler auf, und ich will wissen wieso. HILFE! ![]() ![]() |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
hast du WLAN? | ||
between angels and insects |
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm... aber deine Frage mit den Millisecs(): Ist im Netz nich gleich, denn es gibt die zeit nach windowsstart zurück. | ||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Jan: nein, ich verwende ein ganz normales netzwerkkabel (crossoverkabel)
@pixelshooter: ja, das dachte ich mir auch schon irgendwie, da ich das ja gewusst hab, aber wenn ich an beiden rechnern die gleichen einstellungen tätige, ist das programm (mit seinen zufallszahlen) identisch, und es war an 2 PCs... ![]() |
||
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
alles sehr komisch bei dir ![]() |
||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja, sehr komisch, und das tollste ist, dass sich jetzt sowieso kein mensch mehr den ganzen thread durchlesen will, weil er inzwischen ergebnislos übelst lang geworden ist... ![]() ich flehe euch an, ihr meister der programmierkunst, lasst doch bitte meiner wenigkeit einen kleinen teil eures wissens auf mich herabscheinen! vielleicht bestätigt ihr ja auch nur meine vermutung, dass in meinem code eine für jedes netzwerk tödliche zeile oder gar schleife drinsteckt... ihr dürft dann nachher auch alle mitspielen ![]() |
||
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja, ich würd dir ja gern helfen wenn ich könnte. Ich hab aber nur einen PC. Probier doch mal einen der diversen chats hier im Forum. Normalerweise gehen die ja. | ||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmmm... da in dem chat waren voll komische menschen... die haben die ganze zeit von so komischen sachen wie "Stück Fleisch", Ratten ,Stöcken und Kontaktlinsen geredet und waren nichr aus ihrer andacht herauszureißen.
Aber trotzdem danke für den tipp, ich werds wieder probieren...außer da sind nur menschenfresser drin ![]() Aber wenn jemand ne lösung für mein problem weiß und sie gleich hier rein schreibt, dann mach ich nen freudentanz ![]() - danke - |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Welche Ports benutzen die Programme? Vielleicht kommt diese Windows-Meldung mit dem Netzwerkkabel weil du Ports benutzt die zum Windows-Netzwerk gehören.
Andererseits habe ich festgestellt dass du 3 mal "teamgamestats" sendest, aber beim Auslesen nur einen ausliest. Das Programm welches sendet könnte also an dieser Stelle hängen bleiben. Generell empfiehlt es sich in der Hauptschleife immer wenn Daten vorhanden sind etwas auszulesen, wenn unbekannte Daten ankommen ignoriert man die dann einfach. Dadurch kann das Sendeprogramm nicht hängen bleiben. Bsp: Code: [AUSKLAPPEN] Repeat Cls If ReadAvail(stream) > 0 msg_type = ReadByte(stream) Select msg_type Case 1 ;Update von Int-Variable var$ = ReadString(stream) value = ReadInt(stream) If var = "a" then a = value If var = "b" then b = value ... Case 2 ;Chat from = ReadInt(stream) txt$ = ReadString(stream) Print "Chat von " + GetPlayerName(from) + ": " + txt Default ;Alles andere unbekannte überspringen/überlesen While ReadAvail(stream) > 0 ReadByte(stream) Wend End Select Endif Flip Until Keyhit(1) Ansonsten weiss ich auch nicht woran es liegen könnte ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group