Exemplo n.º 1
0
        public void OnRecievedData(IAsyncResult ar)
        {
            SocketItem item = (SocketItem)ar.AsyncState;

            byte[] buff = item.GetRecievedData(ar);
            // If no data was recieved then the connection is probably dead
            if (buff.Length < 1)
            {
                Console.WriteLine("Client {0}, disconnected", item.Socket.RemoteEndPoint);
                item.Socket.Close();
                this.RemoveSocket(item);
                return;
            }
            //抛出事件
            string context = Encoding.UTF8.GetString(buff, 0, buff.Length);

            item.BuffReceive = context;
            if (context.Length > 0)
            {
                //抛出事件
                if (this.OnSocketReceive != null)
                {
                    this.OnSocketReceive.BeginInvoke(this.DeviceType, item.Socket, buff, context, null, this.OnSocketReceive);
                    //this.OnSocketReceive.BeginInvoke(this.DeviceType, item.Socket, buff, context, InvokeCallBack, this.OnSocketReceive);
                }
            }
            item.SetupRecieveCallback(this.OnRecievedData);
        }
Exemplo n.º 2
0
 private void NewConnection(System.Net.Sockets.Socket socket)
 {
     try
     {
         SocketItem item = new SocketItem(socket);
         //Sokcets.Add(socket.RemoteEndPoint.ToString(), item);
         this.AddSocket(item);
         item.SetupRecieveCallback(this.OnRecievedData);
     }
     catch { }
 }