/// <summary> /// 连接 /// </summary> /// <param name="ip"></param> /// <param name="port"></param> /// <param name="callBackConnect">发起连接的回调</param> /// <param name="callBackRecv">接收消息回调</param> public void AsyncConnect(string ip, ushort port, CallBackNormal callBackConnect, CallBackRecv callBackRecv) { errorSocket = ErrorSocket.Success; this.callBackConnect = callBackConnect; this.callBackRecv = callBackRecv; if (clientSocket != null && clientSocket.Connected) { this.callBackConnect(false, ErrorSocket.ConnectError, "connect repeat"); } else if (clientSocket == null || !clientSocket.Connected) { clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress address = IPAddress.Parse(ip); IPEndPoint ipep = new IPEndPoint(address, port); IAsyncResult ar = clientSocket.BeginConnect(ipep, ConnectCallBack, clientSocket); if (!WriteDot(ar)) { this.callBackConnect(false, errorSocket, "连接超时"); } } }
/// <summary> /// 连接服务器 /// </summary> /// <param name="ip"></param> /// <param name="port"></param> /// <param name="connectBack"></param> /// <param name="callBackRecv"></param> public void AsyncConnect(string ip, ushort port, CallBackNormal connectBack, CallBackRecv callBackRecv) { errorSocket = ErrorSocket.Sucess; this.callBackConnect = connectBack; this.callBackRecv = callBackRecv; if (clientSocket != null && clientSocket.Connected) // 已经连接 { this.callBackConnect(false, ErrorSocket.ConnetcErrot, "connect repeat!"); } else if (clientSocket == null || !clientSocket.Connected) // 没有连接则开始连接 { clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(ip), port); IAsyncResult connent = clientSocket.BeginConnect(endPoint, OnConnectCallback, clientSocket); if (!WriteDot(connent)) { this.callBackConnect(false, errorSocket, "连接超时!"); clientSocket.EndConnect(connent); } } }
public void AsyncConnect(string _ip, ushort _port, CallBackNormal _connectBack, CallBackRecv _callBackRecv) { errorSocket = ErrorSocket.Sucess; callBackConnect = _connectBack; callBackRecv = _callBackRecv; if (clientSocket != null && clientSocket.Connected) { this.callBackConnect(false, ErrorSocket.ConnectError, "connect repeat"); } else if (clientSocket == null || !clientSocket.Connected) { clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ipAdress = IPAddress.Parse(_ip); IPEndPoint endPoint = new IPEndPoint(ipAdress, _port); IAsyncResult connect = clientSocket.BeginConnect(endPoint, ConnectCallBack, clientSocket); if (!WriteDot(connect)) { callBackConnect(false, errorSocket, "链接超时"); } } }
public void AsyncConnnect(string ip, ushort port, CallBackNormal connectBack, CallBackNormal sendBack, CallBackRecv recvBack, CallBackNormal disBack) { errorSocket = ErrorSocket.Sucess; this.callBackConnect = connectBack; this.callBackRecv = recvBack; this.callBackSend = sendBack; this.callBackDisconnect = disBack; if (clientSocket != null && clientSocket.Connected) { this.callBackConnect(false,ErrorSocket.ConnectError,"connect repeat"); } else if (clientSocket == null || !clientSocket.Connected) { clientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); IPAddress ipAdress = IPAddress.Parse(ip); IPEndPoint endPoint = new IPEndPoint(ipAdress,port); IAsyncResult connect = clientSocket.BeginConnect(endPoint, ConnectCallBack,clientSocket); // 超时处理 if (!WriteDot(connect)) { this.callBackConnect(false, errorSocket, "连接超时"); } } }