NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Tomáš N.
Člen
Avatar
Tomáš N.:1.9.2015 15:43

Zdravím, pořeboval bych poradit s tím aby nejen server odesílal ale i přijmal a client aby i odesílal ne jen přijmal.

Zde je 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();
        }
    }
}
 
Odpovědět
1.9.2015 15:43
Avatar
vodslon
Člen
Avatar
Odpovídá na Tomáš N.
vodslon:2.9.2015 11:16

Dá se to řešit spoustou způsobů, ale já bych to udělal bud asynchroně nebo přes další vlákno. Proč používáš UDP ze zvědavosti?

 
Nahoru Odpovědět
2.9.2015 11:16
Avatar
Tomáš N.
Člen
Avatar
Odpovídá na vodslon
Tomáš N.:2.9.2015 11:30

TCP mi nefungovalo.

 
Nahoru Odpovědět
2.9.2015 11:30
Avatar
vodslon
Člen
Avatar
Odpovídá na Tomáš N.
vodslon:2.9.2015 13:27

Jako ze sítového důvodu, že máš zařízlej přístup, protože i co google ted mi potvrzuje, všichni na to používají TCP Clienta, kterej je bohatší na funkce. Chceš s tím něják konkrétně pomoc nebo si to chceš napsat sám? :)

 
Nahoru Odpovědět
2.9.2015 13:27
Avatar
Tomáš N.
Člen
Avatar
Odpovídá na vodslon
Tomáš N.:2.9.2015 14:48

Ne děkuji zkusím to teda přes to TCP.

 
Nahoru Odpovědět
2.9.2015 14:48
Avatar
vodslon
Člen
Avatar
Odpovídá na Tomáš N.
vodslon:2.9.2015 14:51

v pohodě, udělej to přes sockety a type použij TCP.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
2.9.2015 14:51
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 6 zpráv z 6.