Exemple #1
0
 private void AcceptCallback(IAsyncResult ar)
 {
     Socket serverSocket = (Socket)ar.AsyncState;
     if (serverSocket != null)
     {
         try
         {
             Socket clientSocket = serverSocket.EndAccept(ar);
             if (clientSocket != null)
             {
                 TCPConnection connection = new TCPConnection(clientSocket);
                 this.CallClientConnected(connection);
                 connection.Disconnected += CallClientDisconnected;
                 connection.PacketReceived += CallPacketReceived;
                 connection.StartListen();
             }
             serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), serverSocket);
         }
         catch (Exception)
         {
         }
     }
 }
Exemple #2
0
 private void CallPacketReceived(TCPConnection connection, CPacket packet)
 {
     if (this.OnPacketReceived != null)
         this.OnPacketReceived(connection, packet);
 }
Exemple #3
0
        void CommunicationServer_OnPacketReceived(TCPConnection connection, CPacket packet)
        {
            byte packetType = packet.GetByte();
            if(packetType == PacketType.JOIN_REQUEST)
            {
                CPacket response = new CPacket(PacketType.JOIN_RESPONSE);
                response.AddBool(true);
                connection.SendPacket(response);

                Thread.Sleep(100);

                CPacket response2 = new CPacket(PacketType.VOLUME_CONTROL);
                response2.AddByte((byte)this.Volume);
                connection.SendPacket(response2);

                Thread.Sleep(100);

                CPacket response3 = new CPacket(PacketType.STREAM_LIST);
                response3.AddByte((byte)this.StreamManager.Streams.Count);
                foreach(RadioStream stream in this.StreamManager.Streams)
                {
                    response3.AddString(stream.Name);
                }
                connection.SendPacket(response3);
            } else if(packetType == PacketType.VOLUME_CONTROL) {
                byte volume = packet.GetByte();
                this.Volume = volume;
            } else if(packetType == PacketType.PLAY_STREAM)
            {
                string streamName = packet.GetString();
                foreach (RadioStream stream in this.StreamManager.Streams)
                    if (streamName.Equals(stream.Name)) this.StreamPlayer.Play(stream.Address);
            }
        }
Exemple #4
0
 private void CallClientConnected(TCPConnection connection)
 {
     this.connections.Add(connection);
     if (this.OnClientConnected != null)
         this.OnClientConnected(this, connection);
 }
Exemple #5
0
 void CommunicationServer_OnClientConnected(object sender, TCPConnection e)
 {
 }