ConsoleUDPServer与ConsoleUDP

ConsoleUDPServer与ConsoleUDP

ConsoleUDPServer服务端

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

namespace ConsoleUDP
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("服务端。。。");
            Console.ForegroundColor = ConsoleColor.Gray;
            #region TCP/IP
            //int port = 1234;
            //string host = "127.0.0.1";

            //IPAddress ip = IPAddress.Parse(host);
            //IPEndPoint ipe = new IPEndPoint(ip, port);

            //Socket sSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //sSocket.Bind(ipe);
            //sSocket.Listen(0);
            //Console.WriteLine("监听已经打开,请等待");
            //Socket serverSocket = null;
            //try
            //{
            //    //receive message
            //    serverSocket = sSocket.Accept();
            //    Console.WriteLine("连接已经建立");
            //    string recStr = "";
            //    byte[] recByte = new byte[4096];
            //    while (serverSocket != null)
            //    {
            //        int bytes = serverSocket.Receive(recByte, recByte.Length, 0);
            //        recStr = Encoding.Default.GetString(recByte, 0, bytes);

            //        //send message
            //        Console.WriteLine("服务器端收到来自client数据:{0}", recStr);
            //        string sendStr = $"send to client :{recStr}";
            //        byte[] sendByte = Encoding.Default.GetBytes(sendStr);
            //        serverSocket.Send(sendByte, sendByte.Length, 0);
            //        Thread.Sleep(TimeSpan.FromSeconds(2));
            //    }
            //}
            //catch (Exception)
            //{
            //}
            //finally
            //{
            //    serverSocket.Close();
            //    sSocket.Close();
            //}

            //Console.ReadLine();
            #endregion



            #region UDP

            int port = 1234;
            string host = "127.0.0.1";

            IPAddress ip = IPAddress.Parse(host);
            IPEndPoint ipe = new IPEndPoint(ip, port);
            //udp需要注释用该句话SocketType.Stream => SocketType.Dgram,ProtocolType.Tcp => ProtocolType.Udp
            Socket sSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            sSocket.Bind(ipe);
            //sSocket.Listen(0);//udp需要注释用该句话
            Console.WriteLine("监听已经打开,请等待");
            try
            {
                //receive message
                //serverSocket = sSocket.Accept();//udp需要注释用该句话
                Console.WriteLine("连接已经建立");
                string recStr = "";
                byte[] recByte = new byte[4096];
                IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 0);
                EndPoint endP = (EndPoint)endPoint;                
                while (true)
                {
                    int bytes = sSocket.ReceiveFrom(recByte, ref endP);
                    recStr = Encoding.Default.GetString(recByte, 0, bytes);

                    //send message
                    Console.WriteLine("服务器端收到来自client数据:{0}", recStr);
                    string sendStr = $"send to client :{recStr}";
                    byte[] sendByte = Encoding.Default.GetBytes(sendStr);
                    //serverSocket.Send(sendByte, sendByte.Length, 0);
                    sSocket.SendTo(sendByte,0, sendByte.Length,SocketFlags.None, endP);
                    Thread.Sleep(TimeSpan.FromSeconds(2));
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                sSocket.Close();
                sSocket.Close();
            }

            Console.ReadLine();
            #endregion
        }
    }
}

 

ConsoleUDP客户端

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

namespace ConsoleUDPClient
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("客户端。。。");
            Console.ForegroundColor = ConsoleColor.Gray;
            #region TCP/IP

            //int port = 1234;
            //string host = "127.0.0.1";//服务器端ip地址

            //IPAddress ip = IPAddress.Parse(host);
            //IPEndPoint ipe = new IPEndPoint(ip, port);

            //Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //clientSocket.Connect(ipe);

            //string sendStr="client000 ";
            //int i = 0;
            //while (true)
            //{
            //    try
            //    {
            //        //send message
            //        sendStr = $"客户端数据:{++i}";
            //        Console.WriteLine($"sendStr:{sendStr}");
            //        byte[] sendBytes = Encoding.Default.GetBytes(sendStr);
            //        clientSocket.Send(sendBytes);

            //        //receive message
            //        string recStr = "";
            //        byte[] recBytes = new byte[4096];
            //        int bytes = clientSocket.Receive(recBytes, recBytes.Length, 0);
            //        recStr += Encoding.Default.GetString(recBytes, 0, bytes);
            //        Console.WriteLine($"recStr:{recStr}");
            //        Thread.Sleep(TimeSpan.FromSeconds(2));
            //    }
            //    catch (Exception)
            //    {
            //    }
            //}
            #endregion
            #region UDP

            int port = 1234;
            string host = "127.0.0.1";//服务器端ip地址

            IPAddress ip = IPAddress.Parse(host);
            IPEndPoint ipe = new IPEndPoint(ip, port);
            Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            IPEndPoint ipe1 = new IPEndPoint(IPAddress.Any, 0);
            EndPoint ipend = (EndPoint)ipe1;
            int i = 0;
            while (true)
            {
                try
                {
                    string sendStr = $"客户端数据:{++i}";
                    Console.WriteLine($"sendStr:{sendStr}");
                    byte[] sendBytes = Encoding.Default.GetBytes(sendStr);
                    clientSocket.SendTo(sendBytes, 0, sendBytes.Length, SocketFlags.None, ipe);
                    //receive message
                    string recStr = "";
                    byte[] recBytes = new byte[4096];
                    int bytes = clientSocket.ReceiveFrom(recBytes, ref ipend);
                    recStr += Encoding.Default.GetString(recBytes, 0, bytes);
                    Console.WriteLine($"recStr:{recStr}");
                    Thread.Sleep(TimeSpan.FromSeconds(2));
                }
                catch (Exception)
                {
                }
            }
            #endregion
        }
    }
}

 

posted @ 2021-07-06 10:45  龙骑科技  阅读(47)  评论(0编辑  收藏  举报