推荐文章

c#去除字符串中的空格,回车,换行符,制表符

c#去除字符串中的空格,回车,换行符,制表符

c#去除字符串中的空格,回车,换行符,制表符
C#监控程序启动和关闭

C#监控程序启动和关闭

C#监控程序启动和关闭using System;using System.Collections.Generic;using System.Text;using System.Diagnostics;using System.Threading;namespace ProcessListener{ class Program { static void Main(stri
C#操作USB口的摄像头

C#操作USB口的摄像头

private const uint BM_CLICK = 0xF5; 鼠标点击的消息,对于各种消息的数值,查API手册,也可用VS2010自带的SPY++ [DllImpt("user32.dll", EntryPoint = "SendMessage", SetLastErr = true, Set = Set.Auto)]private static extern int SendMe
C# FTP操作

C# FTP操作

C# FTP操作
C#文件监控对象FileSystemWatcher

C#文件监控对象FileSystemWatcher

使用C#文件监控对象FileSystemWatcher对文件夹下的删除、修改、新增

C# UDP用户数据报协议

日期:2018-07-05 点击:1544 来源:PB2.CN

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是 一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,与TCP不同的是,UDP是面向无连接的,它没有TCP传输前的“三次握手”的机制,是一种不可靠的传输机制。。
我们再来看看用UDP实现小聊天程序吧,,,
同TCP一样,UDP同样需要一个服务器端和一个客户端来模拟对话,我们就用两个控制台应用程序实现,首先我们来搭建服务器端,贴上代码:

UDP服务器端Socket


            //第一步 定义一个Socket
            Socket socketServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
           
            //第二步 设置一个网络节点
            IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 8888);
           
            //将socketServer绑定到网络节点上
            socketServer.Bind(endPoint);

            //【Tcp的时候需要监听 但DUP不需要监听】
            //socketServer.Listen(10);           

           //输出一句话 提示服务已开启
            Console.WriteLine("===UDP Server Is OK===\r\n IP:" + endPoint.Address + "  Port:" + endPoint.Port);



UDP客户端

 
           //第一步 建立一个Socket
            Socket socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            //第二步 通过套接字收发报文
            Console.WriteLine("按任意键 开始向服务器发送数据");
            Console.ReadKey();

            byte[] data = new byte[1024 * 1024];
            string input, stringData;

            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);
            data = Encoding.UTF8.GetBytes("Hello Server,My Name Is HolyKnight_UdpClient");

            //将数据发送到服务器的终结点
            socketClient.SendTo(data, endPoint);

            //定义一个发送终结点,没有具体的IP和Port
            IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);

            //定义一个网络地址
            EndPoint Remote = (EndPoint)sender;

            //重新实例化一个字节数组 用于存放接受到的数据
            data = new byte[1024 * 1024];
            //接受数据 将数据保存到data数据 将远程主机的节点保存到Remote终端中【注意ref引用】
            int receive = socketClient.ReceiveFrom(data,ref Remote);

            Console.WriteLine("Message Receive From {0}", Remote.ToString());
            Console.WriteLine(Encoding.UTF8.GetString(data, 0, receive));

            //循环收发数据
            while (true)
            {
                //从键盘读取数据
                input = Console.ReadLine();
                if (input == "exit")
                {
                    break;
                }
                //同样的发送数据到Remote节点
                socketClient.SendTo(Encoding.UTF8.GetBytes(input),Remote);
                data = new byte[1024 * 1024];

                //同样的接受数据 并再次更新存储终结点
                receive = socketClient.ReceiveFrom(data,ref Remote);
                stringData = Encoding.UTF8.GetString(data, 0, receive);

                Console.WriteLine("服务器说:" + stringData);
            }

            //关闭套接字
            Console.WriteLine("Stopping Client");
            socketClient.Close();
            Console.ReadKey();
        }





这篇文档对您是否有帮助?

c#去除字符串中的空格,回车,换行符,制表符

c#去除字符串中的空格,回车,换行符,制表符

c#去除字符串中的空格,回车,换行符,制表符
C#监控程序启动和关闭

C#监控程序启动和关闭

C#监控程序启动和关闭using System;using System.Collections.Generic;using System.Text;using System.Diagnostics;using System.Threading;namespace ProcessListener{ class Program { static void Main(stri
C#操作USB口的摄像头

C#操作USB口的摄像头

private const uint BM_CLICK = 0xF5; 鼠标点击的消息,对于各种消息的数值,查API手册,也可用VS2010自带的SPY++ [DllImpt("user32.dll", EntryPoint = "SendMessage", SetLastErr = true, Set = Set.Auto)]private static extern int SendMe
C# FTP操作

C# FTP操作

C# FTP操作
C#文件监控对象FileSystemWatcher

C#文件监控对象FileSystemWatcher

使用C#文件监控对象FileSystemWatcher对文件夹下的删除、修改、新增