Diskuze: C# UDP

C# .NET .NET (C# a Visual Basic) C# UDP American English version English version

Avatar
Dortík
Člen
Avatar
Dortík:

Zdravím, chtěl bych se zeptat jestli by u klienta nemohla být napsaná IP adresa kam se má připojit né kam má server vysílat. Server by vysílal na tu která se na něho připojila.

Tady mám server:

public partial class Form1 : Form
{
    Socket s;
    IPAddress broadcast;

    public Form1()
    {
        InitializeComponent();
        Start();
    }

    private void Start()
    {
        s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
        ProtocolType.Udp);

        broadcast = IPAddress.Parse("192.168.0.104");
    }

    private void Odeslat(string Event)
    {
        byte[] sendbuf = Encoding.ASCII.GetBytes(Event);
        IPEndPoint ep = new IPEndPoint(broadcast, 25565);

        s.SendTo(sendbuf, ep);
    }

    private void btn_Open_Click(object sender, EventArgs e)
    {
        Odeslat("Open");
    }
}

No a tady client:

public partial class Form1 : Form
{
    int listenPort = 25565;

    public Form1()
    {
        InitializeComponent();
        Start();
    }

    private void Start()
    {
        bool done = false;

        UdpClient listener = new UdpClient(listenPort);
        IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);

        try
        {
            while (!done)
            {
                byte[] bytes = listener.Receive(ref groupEP);

                string receive = Encoding.ASCII.GetString(bytes, 0, bytes.Length);
                Console.WriteLine(receive);
            }

        }
        catch (Exception e)
        {
            Thread.Sleep(5000);
            Console.WriteLine(e.ToString());
            Start();
        }
    }
}

Předem děkuji za rady :)

 
Odpovědět 28.8.2015 17:02
Avatar
Odpovídá na Dortík
Josef Kuchař (Pepa489):

Jednoduše to obrátíš: server bude klient a klient bude server ;)

Nahoru Odpovědět 28.8.2015 17:18
2x piš, jednou debuguj
Avatar
Dortík
Člen
Avatar
Odpovídá na Josef Kuchař (Pepa489)
Dortík:

Omlouvám se svůj dotaz jsem napsal špatně. Stačilo by mi aby Server přijmal ne posílal. a Client posílal.

 
Nahoru Odpovědět 28.8.2015 19:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.