コード例 #1
0
ファイル: Client.cs プロジェクト: bmjoy/MiniFramework
 public void Connect(string ip, int port)
 {
     if (IsConnect)
     {
         Debug.Log("客户端已连接");
         return;
     }
     recvBuffer = new byte[MaxBufferSize];
     dataPacker = new DataPacker();
     tcpClient  = new TcpClient();
     tcpClient.BeginConnect(IPAddress.Parse(ip), port, ConnectResult, tcpClient);
 }
コード例 #2
0
 private void ReadResult(IAsyncResult ar)
 {
     System.Net.Sockets.TcpClient socket = (System.Net.Sockets.TcpClient)ar.AsyncState;
     if (socket.Client != null && socket.Connected)
     {
         NetworkStream stream     = socket.GetStream();
         int           recvLength = stream.EndRead(ar);
         if (recvLength > 0)
         {
             byte[] recvBytes = new byte[recvLength];
             Array.Copy(recvBuffer, 0, recvBytes, 0, recvLength);
             DataPacker dataPacker = new DataPacker();
             dataPacker.UnPack(recvBytes);
             stream.BeginRead(recvBuffer, 0, recvBuffer.Length, ReadResult, socket);
         }
     }
 }
コード例 #3
0
 public void Launch()
 {
     if (socket != null)
     {
         return;
     }
     recvBuffer = new byte[maxBufferSize];
     dataPacker = new DataPacker();
     Debug.Log("开始连接服务器:" + ip + " 端口:" + port);
     socket = new System.Net.Sockets.TcpClient();
     socket.BeginConnect(ip, port, ConnectResult, socket);
     CoroutineUtil.Instance.Create().AppendDelay(timeout).AppendEvent(() =>
     {
         if (socket != null && !socket.Connected)
         {
             Close();
         }
     }).Start();
 }
コード例 #4
0
ファイル: UdpClient.cs プロジェクト: 54369075/MiniFramework
 public void Launch()
 {
     if (socket != null)
     {
         return;
     }
     try
     {
         dataPacker = new DataPacker();
         IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, port);
         socket = new System.Net.Sockets.UdpClient(endPoint);
         socket.EnableBroadcast = true;
         socket.BeginReceive(ReceiveResult, socket);
         IsActive = true;
         Debug.Log("主机初始化成功");
     }
     catch (Exception e)
     {
         Debug.Log(e);
     }
 }
コード例 #5
0
 public void Launch()
 {
     if (tcpListener != null)
     {
         return;
     }
     recvBuffer    = new byte[MaxBufferSize];
     remoteClients = new List <System.Net.Sockets.TcpClient>();
     dataPacker    = new DataPacker();
     try
     {
         tcpListener = new TcpListener(IPAddress.Any, Port);
         tcpListener.Start(MaxConnections);
         tcpListener.BeginAcceptTcpClient(AcceptResult, tcpListener);
         IsActive = true;
         Debug.Log("服务端启动成功:" + Port);
     }
     catch (Exception e)
     {
         Debug.Log(e);
     }
 }
コード例 #6
0
ファイル: UDP.cs プロジェクト: bmjoy/MiniFramework
 public void Launch(int port)
 {
     if (IsActive)
     {
         Debug.Log("UDP已启动!");
         return;
     }
     dataPacker = new DataPacker();
     try
     {
         IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, port);
         udpClient = new UdpClient(endPoint);
         udpClient.EnableBroadcast = true;
         udpClient.BeginReceive(ReceiveResult, udpClient);
         IsActive = true;
         Debug.Log("UDP初始化成功");
     }
     catch (Exception e)
     {
         Debug.Log(e);
     }
 }
コード例 #7
0
 public void Launch(int port, int maxConnections)
 {
     if (IsActive)
     {
         Debug.Log("服务器已启动");
         return;
     }
     recvBuffer    = new byte[MaxBufferSize];
     remoteClients = new List <TcpClient>();
     dataPacker    = new DataPacker();
     try
     {
         tcpListener = new TcpListener(IPAddress.Any, port);
         tcpListener.Start(maxConnections);
         tcpListener.BeginAcceptTcpClient(AcceptResult, tcpListener);
         IsActive = true;
         Debug.Log("服务端启动成功:" + tcpListener.LocalEndpoint);
     }
     catch (Exception e)
     {
         Debug.Log(e);
     }
 }