Example #1
0
        public void SendData(int Type, string Name, byte[] Content, DateTime date, string fileName)
        {
            if (mSocket == null)
            {
                throw new ArgumentNullException("连接不存在");
            }
            if (Content == null)
            {
                return;
            }
            SocketEntity my = new SocketEntity(Type, Name, Content, date, fileName);

            byte[] SendData = my.GetBytes();
            mSocket.BeginSend(SendData, 0, SendData.Length, 0, new AsyncCallback(SendCallBack), mSocket);
        }
Example #2
0
        private void ReceiveCallback(IAsyncResult ar)
        {
            try
            {
                StateObject state = ar.AsyncState as StateObject;
                //读取数据
                int bytesRead = mSocket.EndReceive(ar);
                if (bytesRead > 0)
                {
                    state.sb.Append(UTF8Encoding.UTF8.GetString(state.buffer, 0, bytesRead));
                    string sb = state.sb.ToString();
                    if (sb.Substring(sb.Length - 1, 1) == EndChar)
                    {
                        //接收完成
                        //激发事件
                        state            = new StateObject();
                        state.workSocket = mSocket;
                    }

                    mSocket.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state);
                    SocketEntity entity = SocketEntity.GetSocketEntity(state.buffer);
                    if (OnByteDataReceived != null)
                    {
                        OnByteDataReceived(id, entity);
                    }
                }
            }
            catch (SocketException se)
            {
                if (OnClosed != null)
                {
                    OnClosed(ID, se.Message);
                }
            }
            catch (Exception e)
            {
                throw new ApplicationException(e.Message);
            }
        }