TCPClient Verbindung funktioniert nur noch mit installierten Visual Studio



  • Ich bin inzwischen am verzweifeln.

    Das Programm was ich seit einiger Zeit sehr intensiv programmiere hat einen merkwürdigen Fehler. Es ist eine 1 Server - x Client Anwendung.

    Ich habe schon viele Versionen mit anderen Leuten getestet. Es hat alles so funktioniert wie es sollte. Nachdem ich mehrere Dutzend Stunden programmiert habe ohne mit jemand Aussenstehenden zu testen ist es passiert.

    Der Client vom Kumpel verliert die Verbindung zum Server.
    Bei mir hat es immer noch funktioniert.

    An diesem Problem hänge ich jetzt schon seit einer Woche. Ich habe keine Ahnung was ich groß an Quellcode in diesem Fall schicken soll. Also hier ein paar Fakten:

    - Ich benutze TCPClient und TCPListener
    - Programm funktioniert nur auf Computern mit Visual Studio (3/3)
    - Programm funktioniert auf Computern ohne Visual Studio nicht(6/6)
    Aktuelles Framework ist zumindest in ein paar von den 6 Fällen vorhanden
    - Der Client meldet einen Fehler immer an folgender Stelle:

    byte[] bb = new byte[450];
    int k = stm.Read(bb, 0, 450);
    

    (stm = Socket)
    - Die Verbindung geht quasi sofort verloren
    - Senden funktioniert problemlos. (Kommt auch am Server an)

    Ich bin absolut ratlos. Ich weiß leider nicht woran es liegt, weil ich halt längere Zeit nicht mit anderen Leuten getestet habe. Ist auch das 1. Mal das mir sowas passiert. Stocher momentan nur noch im Dunkeln.

    Jetzt die Frage. Weiß jemand woran es liegen kann? Was könnte dafür sorgen, dass wenn Visual Studio mit C# installiert ist das Programm 100% funktioniert und ohne das Empfangen von Nachrichten nicht möglich ist.

    Quellcode weiß ich wie gesagt nicht was ich da schicken sollte :S. Es hat wie gesagt auch schon bei Leuten ohne Visual Studio funktioniert. Ich wüßte allerdings nicht was jetzt groß der Unterschied sein sollte.

    Vielen Dank fürs Lesen ...



  • Schockster schrieb:

    - Der Client meldet einen Fehler immer an folgender Stelle:

    Welchen Fehler?
    Welche Exception genau?

    Schonmal Firewall-Einstellungen geprüft?



  • µ schrieb:

    Schonmal Firewall-Einstellungen geprüft?

    Habe ich noch nicht. Allerdings fragt die Firewall direkt nach und die Testpersonen haben es sogar mit localhost versucht. Also Server und Client über diese IP laufen lassen. Ich glaube nicht, dass die Firewall da eine Rolle spiel.

    Darüber hinaus. Eine Verbindung kommt zu Stande. Sie bricht nur wieder sehr sehr sehr schnell ab.

    µ schrieb:

    Welchen Fehler?
    Welche Exception genau?

    Sry, dass habe ich vergessen 🙄.
    Der Fehler lautet:

    System.InvalidOperationException: Der Vorgang ist für nicht verbundene Sockets unzulässig.



  • "Der Vorgang ist für nicht verbundene Sockets unzulässig."
    Dann hat man in der Regel das .Connect() vergessen, oder irgendwas bei Verwendung von Threads verbockt 😉



  • geeky schrieb:

    "Der Vorgang ist für nicht verbundene Sockets unzulässig."
    Dann hat man in der Regel das .Connect() vergessen, oder irgendwas bei Verwendung von Threads verbockt 😉

    Wenn ich das Connect vergessen hätte. Wieso sollte es dann bei mir problemlos funktionieren?



  • Win7? Als administator ausführen?



  • Schockster schrieb:

    Wenn ich das Connect vergessen hätte. Wieso sollte es dann bei mir problemlos funktionieren?

    Dann nicht, aber wenn mit Threads was verpfuscht ist könnte der VS-Debugger da ggf. die Ausführung der Threads beeinflussen so dass der Fehler dann nicht auftritt.



  • Ich habe es jetzt nochmal getestet. Es funktioniert auch wenn ich es nicht über Visual Studio starte ...

    Als Admin ausführen mache ich selbst nicht und es funzt. Kann es die Testpersonen ja trotzdem mal machen lassen :D.

    Ist es jetzt möglich, dass es ein Programmierfehler ist wenn es auf einem PC es läuft auf dem anderen nicht und die beiden die selbe Framework Version haben?



  • Schockster schrieb:

    Ist es jetzt möglich, dass es ein Programmierfehler ist [...]

    Ehm, ich dachte das wäre von Anfang an klar gewesen? Natürlich ist es ein Programmierfehler, was denn sonst? Gremlins? Nur ohne Kenntnis des (relevanten) Codes kann man hier nicht mehr machen als raten.

    Schockster schrieb:

    Wieso sollte es dann bei mir problemlos funktionieren?

    Newsflash: Dein Programm funktioniert offensichtlich _nicht_ problemlos. Es scheint eher so das es zufällig auf deinem System funktoniert. Klassischer Fall von WOMM (Works on my machine)

    http://www.codinghorror.com/blog/2007/03/the-works-on-my-machine-certification-program.html



  • Schande über mein Haupt. Die Ursache war ein verrutschtes GetStream()...

    loks schrieb:

    Schockster schrieb:

    Ist es jetzt möglich, dass es ein Programmierfehler ist [...]

    Ehm, ich dachte das wäre von Anfang an klar gewesen? Natürlich ist es ein Programmierfehler, was denn sonst? Gremlins? Nur ohne Kenntnis des (relevanten) Codes kann man hier nicht mehr machen als raten.

    Schockster schrieb:

    Wieso sollte es dann bei mir problemlos funktionieren?

    Newsflash: Dein Programm funktioniert offensichtlich _nicht_ problemlos. Es scheint eher so das es zufällig auf deinem System funktoniert. Klassischer Fall von WOMM (Works on my machine)

    http://www.codinghorror.com/blog/2007/03/the-works-on-my-machine-certification-program.html

    Haha :D. Dank dir kann ich über mich selbst lachen. Naiv von mir, allerdings ist es kein klassischer Fall von works only on my machine, weil es ja auch scheinbar 🙄 auf allen PC's mit Visual Studio funktioniert.

    Thema hat sich jedenfalls erledigt. Das nächste mal poste ich Code egal was komme und geschehe.

    Danke nochmal an die Leute die versucht haben mir zu helfen.


Anmelden zum Antworten