Upd建立网络连接

来源:互联网 发布:网络安全意识 责任心 编辑:程序博客网 时间:2024/05/17 23:39

UpdServer:

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


namespace UpdServer
{
    class Program
    {
        static void Main(string[] args)
        {
            Server server = new Server();
            server.StartUp();
        }
    }


    public class Server
    {
        private Socket _server;
        private string _ip = "192.168.30.35";
        private int _port = 10000;
        private EndPoint endPointRef;


        public void StartUp()
        {
            _server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            EndPoint endPoint = new IPEndPoint(IPAddress.Parse(_ip), _port);
            _server.Bind(endPoint);


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


            Thread _receiveClientMsg = new Thread(ReceiveClientMsg);
            _receiveClientMsg.Start();
        }


        public void ReceiveClientMsg()
        {  
            byte[] msgBytes = new byte[1024 * 64];


            while (true)
            {


                int len = _server.ReceiveFrom(msgBytes, ref endPointRef);
                Console.WriteLine("111111111111111111");
                string str = Encoding.UTF8.GetString(msgBytes, 0, len);
                IPEndPoint clientEndPoint = endPointRef as IPEndPoint;
                Console.WriteLine("Receive {0} : {1}   : {2}", clientEndPoint.Address.ToString(), clientEndPoint.Port, str);
                Send("Server Message", endPointRef);


            }
        }


        public void Send(string str,EndPoint target)
        {
            _server.SendTo(Encoding.UTF8.GetBytes(str), target);
        }
    }
}


UpdClient:

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


namespace UpdClient
{
    class Program
    {
        static void Main(string[] args)
        {
            Client client = new Client();
            client.StartUp();


            while(true)
            {
                client.Send(Console.ReadLine());
            }
        }
    }


    public class Client
    {
        private Socket _client;
        private string _serverIP = "192.168.30.35";
        private string _clientIP = "192.168.30.35";
        private int _port = 10000;
        private int _port1 = 10001;
        private EndPoint _serverEndPoint;
        private EndPoint _clientEndPoint;


        public void StartUp()
        {
            _client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            _serverEndPoint = new IPEndPoint(IPAddress.Parse(_serverIP), _port);
            _clientEndPoint = new IPEndPoint(IPAddress.Parse(_clientIP), _port1);


            _client.Bind(_clientEndPoint);


            Thread _receiveServerMsg = new Thread(ReceiveServerMsg);
            _receiveServerMsg.Start();
        }




        public void ReceiveServerMsg()
        {
            while(true)
            {
                EndPoint endPoint = new IPEndPoint(IPAddress.Any, 0);
                byte[] msgBytes = new byte[1024 * 64];
                int len = _client.ReceiveFrom(msgBytes, ref endPoint);
                string str = Encoding.UTF8.GetString(msgBytes, 0, len);
                IPEndPoint clientEndPoint = endPoint as IPEndPoint;
                Console.WriteLine("Receive {0} : {1}   : {2}", clientEndPoint.Address.ToString(), clientEndPoint.Port, str);
            }  
        }


        public void Send(string str)
        {
            _client.SendTo(Encoding.UTF8.GetBytes(str), _serverEndPoint);
        }
    }
}