当前位置:  开发笔记 > 编程语言 > 正文

UDP侦听器响应客户端

如何解决《UDP侦听器响应客户端》经验,为你挑选了1个好方法。

我在MSDN上找到了这个用于UDP客户端/服务器连接的优秀代码,但是客户端只能发送到服务器,它无法回复.我该怎么做才能使服务器响应发送消息的客户端.服务器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Security.Cryptography;


namespace UDP_Server
{
    class Program
    {
        private const int listenPort = 11000;

        private static void StartListener()
        {
            bool done = false;

            UdpClient listener = new UdpClient(listenPort);
            IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
            try
            {
                while (!done)
                {
                    Console.WriteLine("Waiting for broadcast");
                    byte[] bytes = listener.Receive(ref groupEP);
                    Console.WriteLine("Received broadcast from {0} :\n {1}\n",groupEP.ToString(), Encoding.ASCII.GetString(bytes, 0, bytes.Length));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            finally
            {
                listener.Close();
            }
        }

        public static int Main()
        {
            StartListener();

            return 0;
        }
    }

}

和客户

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Security.Cryptography;

namespace UDP_Client
{
    class Program
    {
        static void Main(string[] args)
        {
            Send("TEST STRING");
            Console.Read();
        }
        static void Send(string Message)
        {
            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            IPAddress broadcast = IPAddress.Parse("10.1.10.117");
            byte[] sendbuf = Encoding.ASCII.GetBytes(Message);
            IPEndPoint ep = new IPEndPoint(broadcast, 11000);
            s.SendTo(sendbuf, ep);
        }
    }
}

Jan.. 8

只是反过来做.调用StartListener的客户端,它可以收到这样一个服务器的UDP数据.

在您的服务器上只需使用客户端代码发送数据.



1> Jan..:

只是反过来做.调用StartListener的客户端,它可以收到这样一个服务器的UDP数据.

在您的服务器上只需使用客户端代码发送数据.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有