Example #1
0
 public void AsyncDisconnect(CallBackNormal tmpDisconnectBack)
 {
     try
     {
         errorSocket             = ErrorSockect.eSuccess;
         this.callBackDisconnect = tmpDisconnectBack;
         if (clientSocket == null)
         {
             this.callBackDisconnect(false, ErrorSockect.eDisConnectUnkown, "client is null");
         }
         else if (!clientSocket.Connected)
         {
             this.callBackDisconnect(false, ErrorSockect.eDisConnectUnkown, "client is unConnect");
         }
         else
         {
             IAsyncResult asynDisconnet = clientSocket.BeginDisconnect(false, DisconnectCallBack, clientSocket);
             if (WriteDot(asynDisconnet))
             {
                 this.callBackDisconnect(false, ErrorSockect.eDisConnectUnkown, "disconnect failed");
             }
         }
     }
     catch (Exception e)
     {
         this.callBackDisconnect(false, ErrorSockect.eDisConnectUnkown, "disconnect failed");
     }
 }
 private void CallBackDisconnect(bool success, ErrorSockect error, string exception)
 {
     if (success)
     {
         sendThread.Abort();
     }
 }
 private void AsysnConnectCallBack(bool success, ErrorSockect error, string exception)
 {
     if (success)
     {
         sendThread = new Thread(LoopSendMsg);
         sendThread.Start();
     }
 }
 private void AsysnRecvCallBack(bool success, ErrorSockect error, string exception, byte[] byteMessage,
                                string strMessage)
 {
     if (success)
     {
     }
     else
     {
     }
 }
Example #5
0
    //true 表示可以写入,false 表示超时
    bool WriteDot(IAsyncResult ar)
    {
        int i = 0;

        while (ar.IsCompleted == false)
        {
            i++;
            if (i > 20)
            {
                errorSocket = ErrorSockect.eTimeOut;
                return(false);
            }
            Thread.Sleep(100);
        }
        return(true);
    }
Example #6
0
 public void AsyncConnect(string ip, ushort port, CallBackNormal connectBack, CallBackRecv tmpRecvBack)
 {
     errorSocket          = ErrorSockect.eSuccess;
     this.callBackConnect = connectBack;
     this.callBackRecv    = tmpRecvBack;
     if (clientSocket != null && clientSocket.Connected)
     {
         this.callBackConnect(false, ErrorSockect.eConnectError, "connect repeat");
     }
     else if (clientSocket == null || !clientSocket.Connected)
     {
         clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
         IPAddress    ipAddress = IPAddress.Parse(ip);
         IPEndPoint   endPoint  = new IPEndPoint(ipAddress, port);
         IAsyncResult connect   = clientSocket.BeginConnect(endPoint, ConnectCallBack, clientSocket);
         if (WriteDot(connect))
         {
             connectBack(false, errorSocket, "链接超时");
         }
     }
 }
Example #7
0
 public void AsynSend(byte[] sendBuffer, CallBackNormal tmpSendBack)
 {
     errorSocket       = ErrorSockect.eSuccess;
     this.callBackSend = tmpSendBack;
     if (clientSocket == null)
     {
         this.callBackSend(false, ErrorSockect.eSockectNull, "");
     }
     else if (!clientSocket.Connected)
     {
         callBackSend(false, ErrorSockect.eSockectUnConnect, "");
     }
     else
     {
         IAsyncResult asySend = clientSocket.BeginSend(sendBuffer, 0, sendBuffer.Length, SocketFlags.None, SendCallBack, clientSocket);
         if (!WriteDot(asySend))
         {
             callBackSend(false, ErrorSockect.eSendUnSuccessUnKown, "send failed");
         }
     }
 }
Example #8
0
 private void ConnectCallBack(IAsyncResult asConnect)
 {
     try
     {
         clientSocket.EndConnect(asConnect);
         if (clientSocket.Connected == false)
         {
             errorSocket = ErrorSockect.eConnectUnSuccessUnKown;
             callBackConnect(false, errorSocket, "链接超时");
             return;
         }
         else
         {
             //开始接收消息
             errorSocket = ErrorSockect.eConnectSuccess;
             this.callBackConnect(false, errorSocket, "success");
         }
     }
     catch (Exception e)
     {
         this.callBackConnect(false, errorSocket, e.ToString());
     }
 }
 private void CallBackSend(bool success, ErrorSockect error, string exception)
 {
 }