/// <summary> /// 新建连接 /// </summary> /// <param name="ip">连接的服务器IP</param> /// <param name="port">连接的端口号</param> /// <param name="connEvent">连接完成后回调</param> /// <param name="disconnEvent">断开连接发生时回调</param> /// <param name="recvEvent">接收到消息包时回调</param> public void Connect(string ip, int port, OnConnectEvent connEvent, OnDisconnectEvent disconnEvent, OnRecvEvent recvEvent) { if (mIsConnected) { Disconnect("reconnect"); } mOnConnect = connEvent; mOnDisConnect = disconnEvent; mOnRecvPackage = recvEvent; mIP = ip; mPort = port; mTcpClient = new TcpClient { NoDelay = true, ReceiveBufferSize = mRecvBuffSize, SendBufferSize = mSendBuffSize }; mIsConnected = false; try { mTcpClient.BeginConnect(IPAddress.Parse(ip), port, new AsyncCallback(OnConnectCallback), mTcpClient); Invoke("ConnectTimeOutCheck", 3); } catch (Exception ex) { if (IsInvoking("ConnectTimeOutCheck")) { CancelInvoke("ConnectTimeOutCheck"); } if (mOnConnect != null) { mOnConnect.Invoke(false, ex.ToString()); } } }
/// <summary> /// 移除一个接受数据回调 /// </summary> /// <param name="recvEvent">要移除的回调函数</param> public void RemoveRecvEvent(OnRecvEvent recvEvent) { mOnRecvPackage -= recvEvent; }
/// <summary> /// 添加一个新的接收数据回调 /// </summary> /// <param name="recvEvent">要添加的回调函数</param> public void AddRecvEvent(OnRecvEvent recvEvent) { mOnRecvPackage += recvEvent; }