Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] Socket Programm läuft nicht auf XP
huge687
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

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

beantworten | zitieren | melden

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:

Fehler
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
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von huge687 am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16110

beantworten | zitieren | melden

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

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
huge687
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

beantworten | zitieren | melden

Ich wollte mir jetzt die InnerException ausgeben lassen aber die hat keinen Inhalt. Oder meintet ihr das anders?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16110

beantworten | zitieren | melden

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.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2335
Herkunft: Witten

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Lars Schmitt am .
private Nachricht | Beiträge des Benutzers
huge687
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

beantworten | zitieren | melden

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

Die Firewall ist bereits komplett aus.
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2335
Herkunft: Witten

beantworten | zitieren | melden

Hallo huge,

falls Du es übersehen haben solltest,
Zitat
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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Lars Schmitt am .
private Nachricht | Beiträge des Benutzers
huge687
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2335
Herkunft: Witten

beantworten | zitieren | melden

kannst ja mal bescheid sagen, was es geworden ist

Viele Grüße
Lars
private Nachricht | Beiträge des Benutzers