Beispiel #1
0
        public void Run()
        {
            byte[]     data    = new byte[1024];
            IPEndPoint ipep    = new IPEndPoint(IPAddress.Any, 12060);
            UdpClient  newsock = new UdpClient(ipep);

            Console.WriteLine("Waiting for a client...");


            IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);

            data = newsock.Receive(ref sender);

            Console.WriteLine("Message received from {0}:", sender.ToString());
            Console.WriteLine(Encoding.ASCII.GetString(data, 0, data.Length));

            string welcome = "Welcome to my test server";

            data = Encoding.ASCII.GetBytes(welcome);
            newsock.Send(data, data.Length, sender);

            while (true)
            {
                data = newsock.Receive(ref sender);
                Console.WriteLine("Next Message ");
                Console.WriteLine(Encoding.ASCII.GetString(data, 0, data.Length));
                UDPMessageEvent?.Invoke(null, new UDPMessageRecievedEventArgs(Encoding.ASCII.GetString(data, 0, data.Length)));
                newsock.Send(data, data.Length, sender);
            }
        }
Beispiel #2
0
	// Update is called once per frame
	void Update()
	{

#if !WINDOWS_UWP
        while (udpClient_.Available>0)
        {
            IPEndPoint remotePoint=null;
            var data = udpClient_.Receive(ref remotePoint);
            
            udpEvent.Invoke(remotePoint.Address.ToString(), internalPort, data);
        }
#else
        while (ExecuteOnMainThread.Count > 0)
        {
            ExecuteOnMainThread.Dequeue().Invoke();

        }
#endif

    }
        public void ServerThread()
        {
            byte[]     data    = new byte[1024];
            IPEndPoint ipep    = new IPEndPoint(IPAddress.Any, 12060);
            UdpClient  newsock = new UdpClient(ipep);

            Console.WriteLine("Waiting for a client...");


            IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);


            while (true)
            {
                data = newsock.Receive(ref sender);
                UDPMessageEvent?.Invoke(this, new UDPMessageRecievedEventArgs(Encoding.ASCII.GetString(data, 0, data.Length)));
                newsock.Send(data, data.Length, sender);
            }
        }
Beispiel #4
0
    async void OnMessage(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs args)
    {
        using (var streamIn = args.GetDataStream().AsStreamForRead())
        {
            MemoryStream ms      = ToMemoryStream(streamIn);
            byte[]       msgData = ms.ToArray();

            //m_String이 최종 recv 파일(string임)
            m_String = Encoding.ASCII.GetString(msgData);

            ExecuteOnMainThread.Enqueue(() =>
            {
                if (udpEvent != null)
                {
                    udpEvent.Invoke(args.RemoteAddress.DisplayName, internalPort, msgData);
                }
            });
        }
    }
    private void Socket_MessageReceived(Windows.Networking.Sockets.DatagramSocket sender,
                                        Windows.Networking.Sockets.DatagramSocketMessageReceivedEventArgs args)
    {
        Debug.Log("GOT MESSAGE FROM: " + args.RemoteAddress.DisplayName);
        //Read the message that was received from the UDP  client.
        Stream       streamIn = args.GetDataStream().AsStreamForRead();
        MemoryStream ms       = ToMemoryStream(streamIn);

        byte[] msgData = ms.ToArray();


        if (ExecuteOnMainThread.Count == 0)
        {
            ExecuteOnMainThread.Enqueue(() =>
            {
                Debug.Log("ENQEUED ");
                if (udpEvent != null)
                {
                    udpEvent.Invoke(args.RemoteAddress.DisplayName, internalPort, msgData);
                }
            });
        }
    }