asp.net C#使用UdpClient监听端口代码

1.服务器端

 代码如下 复制代码

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //监听10086端口
            Server(10086);
        }

        /// <summary>
        /// 服务器端
        /// </summary>
        /// <param name="port"></param>
        static void Server(int port)
        {
            try
            {
                while (true)
                {
                    UdpClient udpclient = new UdpClient(port);
                    IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Any, port);
                    byte[] bytes = udpclient.Receive(ref ipendpoint); //停在这等待数据
                    string data = Encoding.Default.GetString(bytes, 0, bytes.Length);
                    udpclient.Close();

                    Console.WriteLine("{0:HH:mm:ss}从{1}发来数据:{2}", DateTime.Now, ipendpoint.Address, data);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0:HH:mm:ss}->{1}", DateTime.Now, ex.Message);
            }
        }
    }
}

2.客户端

 代码如下 复制代码

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //发送数据
            Client("42.121.105.222", 10086, "mzwu.com");
        }

        /// <summary>
        /// 客户端
        /// </summary>
        /// <param name="ip"></param>
        /// <param name="port"></param>
        /// <param name="message"></param>
        static void Client(string ip, int port, string message)
        {
            try
            {
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Parse(ip), port);
                byte[] data = Encoding.Default.GetBytes(message);
                socket.SendTo(data, ipendpoint);
                socket.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0:HH:mm:ss}->{1}", DateTime.Now, ex.Message);
                Console.ReadKey();
            }
        }
    }
}

 

时间: 2024-10-21 19:21:29

asp.net C#使用UdpClient监听端口代码的相关文章

服务器-对外网端口做了映射,需要修改Apache的监听端口吗?

问题描述 对外网端口做了映射,需要修改Apache的监听端口吗? 我用apache做服务器,负责网络的人说把端口做了映射,80端口映射为10018,我应该把apache的监听端口改成10018吗? 现在局域网访问服务器好使,通过外网IP访问不好使,但是能ping到对外网服务的IP. 如果不是端口的问题,那会是什么原因呢? 我初学,求指教. 解决方案 你需要把端口改成10018,这样服务器会转到你apache的端口上.

tcp连接-TCP连接时,服务端监听socket接收客户端连接后新创建的socket默认绑定的端口是监听端口吗?

问题描述 TCP连接时,服务端监听socket接收客户端连接后新创建的socket默认绑定的端口是监听端口吗? 比如用来监听连接的socket绑定23端口,服务端每接受一个连接都新开一个线程和客户端通信,并把新socket传递给新线程,是不是所有新创建的socket都是经过23端口和客户端通信? 解决方案 是的,都通过端口23进行通信 解决方案二: 都是监听端口,如果不是客户端就不能将数据发送到服务器 解决方案三: 23只是监听建立连接,后续数据交换走实际上端口

socket-ecplise Java中用ServerSocket监听端口问题

问题描述 ecplise Java中用ServerSocket监听端口问题 端口号为60012,java的PID为4036,只启用了一个ServerSocket.打开cmd并netstat -aon|findstr ""60012""后,发现有两个地址?这是为什么?谢谢各位大神了 解决方案 验证了的确会出现这两条信息.你的客户端代码和服务器端代码是在同一个局域网中吗?如果代码正确的话,不会连接不上的啊. 解决方案二: 不懂---------- 解决方案三: 或者能不

socket-负责监听端口的局部变量serverScoket在方法结束后,为什么还能继续监听端口?

问题描述 负责监听端口的局部变量serverScoket在方法结束后,为什么还能继续监听端口? 我在winform中的按钮点击事件中新建了一个局部变量serveScoket,开启监听,在方法结束后,我新建一个客户端连接仍然可以连接到服务器,这是为什么? private void btnStart_Click(object sender, EventArgs e) { Socket server = new Socket(AddressFamily.InterNetwork,SocketType.

求vb.net windows service监听端口源码!!

问题描述 求vb.netwindowsservice监听端口源码!!!!!!!!!!!!!!!!!!!! 解决方案 解决方案二:VB.NET端口监听实例ImportsSystem.ComponentModelImportsSystem.DrawingImportsSystem.WinFormsImportsSystem.ThreadingImportsSystem.Net.SocketsPublicClassForm1InheritsSystem.WinForms.FormPrivateoLis

ebs rac 数据库更改监听端口

背景: 新克隆出来一套ebs  rac数据库,但是监听端口使用的是1521,考虑到测试环境,不想用这个端口,打算改成1531. 1.修改context file,把对应的端口改掉(两个节点). 这三个端口都改成1531 2.分别在两个节点运行autocfg 会报错,不过可以忽略,查看db 层tns_admin 下面的tnsnames.ora配置文件都被改成1531,就可以了. 3.重新修改,注册local_listener,重启监听: db用户停止当前监听: srvctl stop listen

Linux用netstat查看服务及监听端口

[root@localhost ~]# netstat -nlp netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序. -n : 不进行DNS轮询(可以加速操作) 即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况 [root@localho

[20161227]打开多个监听端口.txt

[20161227]打开多个监听端口.txt --安全等保的需求,需要在1台数据库打开2个监听端口,并且还不能是1521缺省端口.看了一些文档,做一些记录. --参考连接:http://blog.itpub.net/267265/viewspace-2083455/ 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ --

[20160418]修改oracle监听端口.txt

[20160418]修改oracle监听端口.txt --上午开发提出要修改oracle的监听端口,我以前测试遇到过一些问题: --链接: http://blog.itpub.net/267265/viewspace-758983/ -- 但是在11.2.0.4下遇到以前不一样的情况,时间太久了,测试在2013年做的,也许现在存在一些变化. 1.无静态注册监听: SYS@book> @ &r/ver1 PORT_STRING                    VERSION