コード例 #1
0
ファイル: BaseSocket.cs プロジェクト: a3test/SimpleSocket
        /// <summary>
        /// 接收回调
        /// </summary>
        /// <param name="ar"></param>
        protected void ReceiveCallback(IAsyncResult ar)
        {
            StateObject state = (StateObject) ar.AsyncState;
            Socket handler = state.WorkSocket;

            int recLen;
            try
            {
                recLen = handler.EndReceive(ar);
            }
            catch (Exception)
            {
                return;
            }
            if (recLen <= 0)
            {
                handler.Shutdown(SocketShutdown.Both);
                handler.Close();
                return;
            }

            byte[] buffer = new byte[recLen];
            Array.Copy(state.Buffer, 0, buffer, 0, recLen);
            bool readState = AnalyticReceiveData(buffer, state.ReceiveBytes, state.Contents);
            if (readState && state.ReceiveBytes.Count == 0)
            {
                //Event
                Sender sender = new Sender(handler);
                SocketReceiveProcess(new SocketReceiveEventArgs(sender, state.Contents));

                state.Contents.Clear();
            }
            try
            {
                handler.BeginReceive(state.Buffer, 0, StateObject.BufferSize, SocketFlags.None, ReceiveCallback, state);
            }
            catch (Exception)
            {
                handler.Shutdown(SocketShutdown.Both);
                handler.Close();
            }
        }
コード例 #2
0
 public SocketReceiveEventArgs(Sender dataSender, List<string> contents)
 {
     DataSender = dataSender;
     Contents = contents;
 }
コード例 #3
0
ファイル: SocketClient.cs プロジェクト: a3test/SimpleSocket
 /// <summary>
 /// 发送数据
 /// </summary>
 /// <param name="data"></param>
 public void Send(string data)
 {
     Sender sender = new Sender(_sender);
     sender.Send(data);
 }
コード例 #4
0
        /// <summary>
        /// 发送数据
        /// </summary>
        /// <param name="data"></param>
        public void Send(string data)
        {
            Sender sender = new Sender(_sender);

            sender.Send(data);
        }
コード例 #5
0
 public SocketReceiveEventArgs(Sender dataSender, List <string> contents)
 {
     DataSender = dataSender;
     Contents   = contents;
 }