NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: C# UDP

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
Tomáš N.
Člen
Avatar
Tomáš N.:28.8.2015 17:02

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 Tomáš N.
Josef Kuchař - Pepa489:28.8.2015 17:18

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
Tomáš N.
Člen
Avatar
Odpovídá na Josef Kuchař - Pepa489
Tomáš N.:28.8.2015 19:02

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.