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); }
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); } } }
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(); }
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); } }
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); } }
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); } }
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); } }