Laden...

[gelöst] Socket Programm läuft nicht auf XP

Erstellt von huge687 vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.768 Views
H
huge687 Themenstarter:in
4 Beiträge seit 2015
vor 9 Jahren
[gelöst] Socket Programm läuft nicht auf XP

Hey Zusammen,

ich muss für ein Schulprojekt ein Programm schreiben das über das Netzwerk einen String verschickt und ihn dann auswertet. Das habe ich auch soweit geschafft. Es funktioniert wunderbar nur habe ich das Problem dass es nicht unter Windows XP läuft. Und es muss unter XP laufen da wir in der Schule noch XP benutzen (ich versteh es auch nicht... -.-).

Nun erstmal mein Code:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace Server
{
    public class serv
    {
        public static void Main()
        {
             try
                {
                    IPAddress ipAd = IPAddress.Parse("192.168.2.100");

                    TcpListener myList = new TcpListener(ipAd, 8888);

                    myList.Start();

                    Console.WriteLine("The server is running at port 8888...");
                    Console.WriteLine("The local End point is:  " +
                                       myList.LocalEndpoint);
                    Console.WriteLine("Waiting for a connection.....");

                    Socket s = myList.AcceptSocket();
                    Console.WriteLine("Connection accepted from " + s.RemoteEndPoint);

                    byte[] b = new byte[8];
                    int k = s.Receive(b);
                    Console.WriteLine("Recieved...");
                    string msg = ByteArrayToString(b);

                    if (msg == "shutdown")
                    {
                        //tue was
                    }

                    s.Close();
                    myList.Stop();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Error: " + e.StackTrace);
                }
        }

        private static string ByteArrayToString(byte[] arr)
        {
            System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
            return enc.GetString(arr);
        }
    }
}


Wie gesagt, unter Win 7 kein Problem nur unter Windows XP spuckt er das hier aus:

Fehlermeldung:
Error:
bei System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
bei System.Net.Sockets.Socket.Bind(EndPoint localEP)
bei System.Net.Sockets.TcpListener.Start(Int32 backlog)
bei System.Net.Sockets.TcpListener.Start()
bei Server.serv.Main()

Da ich bisher nur die Grundlagen in C# beherrsche, weiß ich nicht wie ich dieses Problem lösen kann. Ich habe auch leider absolut nichts im Internet zu meinem Problem gefunden.

Ich wäre euch sehr dankbar wenn mir jemand von euch behilflich sein könnte.

Gruß
Noah

16.806 Beiträge seit 2008
vor 9 Jahren

Schau Dir mal die InnerException und Exception Message an
[Artikel] Debugger: Wie verwende ich den von Visual Studio?

2.207 Beiträge seit 2011
vor 9 Jahren

Bei der Exception gibst du nur den Stacktrace aus. Eine Exception hat aber mehr als nur den Stacktrace 😉

Exception Class

Wie Abt gesagt hat: InnerException und der Exceptiontext sollten dir helfen.

Gruss

Coffeebean

H
huge687 Themenstarter:in
4 Beiträge seit 2015
vor 9 Jahren

Ich wollte mir jetzt die InnerException ausgeben lassen aber die hat keinen Inhalt. Oder meintet ihr das anders?

16.806 Beiträge seit 2008
vor 9 Jahren

Nimm den Debugger wie ich es Dir gesagt habe und schau Dir das Exception-Objekt an. Darin eben InnerException (optional) und vor allem die Message...
Ansonsten ist das alles heiteres Rumraten mit der Glaskugel.

2.223 Beiträge seit 2005
vor 9 Jahren

Halllo huge687,

wenn du Dir exception.ToString() anschaust, wird Dir im normalfall auch inner Exception angezeigt.

Mein Tipp wäre, dass Dir entweder die Rechte fehlen, diesen Port zu öffnen oder das die Firewall dein Vorhaben blockiert.

Wenn ich mir jedoch den Port anschaue, den Du da benutzt.
ist auf dem Rechner womöglich ein Lokaler Proxy Server installiert, der den Port blockiert?

Viele Grüße
Lars

H
huge687 Themenstarter:in
4 Beiträge seit 2015
vor 9 Jahren

Ich werde es gleich mal versuchen. Visual Studio C# 2010 wird grade auf XP installiert.

Die Firewall ist bereits komplett aus.

2.223 Beiträge seit 2005
vor 9 Jahren

Hallo huge,

falls Du es übersehen haben solltest,

Wenn ich mir jedoch den Port anschaue, den Du da benutzt.
ist auf dem Rechner womöglich ein Lokaler Proxy Server installiert, der den Port blockiert?

Viele Grüße
Lars

H
huge687 Themenstarter:in
4 Beiträge seit 2015
vor 9 Jahren

Jetzt funktioniert es!
Lars Schmitt, du hattest recht, ich habe es übersehen. Es lag an dem Proxy Server. Darauf wäre ich niemals gekommen
Vielen vielen vielen Danke Leute!
Ihr habt mir warscheinlich die 1 beschehrt 😁 👍
Echt super das Forum hier 🙂 Großes Lob an euch

2.223 Beiträge seit 2005
vor 9 Jahren

kannst ja mal bescheid sagen, was es geworden ist

Viele Grüße
Lars