示例#1
0
        /// <summary>
        /// 处理连接请求
        /// </summary>
        /// <param name="e"></param>
        private void processAccept(SocketAsyncEventArgs e)
        {
            //限制线程的访问
            acceptSemaphore.WaitOne();

            //得到客户端的对象
            //Socket clientSocket = e.AcceptSocket;
            ClientPeer client = clientPeerPool.Dequeue();

            client.ClientSocket = e.AcceptSocket;

            Console.WriteLine("客户端连接成功:" + client.ClientSocket.RemoteEndPoint.ToString());

            //开始接收数据
            startReceive(client);

            e.AcceptSocket = null;
            startAccept(e);
        }
示例#2
0
 /// <summary>
 /// 一条数据解析完成的处理
 /// </summary>
 /// <param name="client">对象的连接对象</param>
 /// <param name="value">解析出来的一个具体能使用的类型</param>
 private void receiveCompleted(ClientPeer client, SocketMsg msg)
 {
     //给应用层 让其使用
     application.OnReceive(client, msg);
 }
示例#3
0
 public void Enqueue(ClientPeer client)
 {
     clientPeerQueue.Enqueue(client);
 }