Beispiel #1
0
 private static Packet ClientRequestChannelList(Packet p)
 {
     try
     {
         Console.WriteLine("Received channel list request.");
         ClientRequestChannelList packet = (ClientRequestChannelList)p;
         ServerAcknowledgementRequestChannelList response = new ServerAcknowledgementRequestChannelList();
         List <int> list = new List <int>();
         foreach (Channel ch in Channel._channel_list)
         {
             list.Add(ch.id);
         }
         response.list = list;
         Console.WriteLine(response.ToString());
         return(response);
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
     return(null);
 }
Beispiel #2
0
        public static void StartClient()
        {
            // Connect to a remote device.
            try {
                // Establish the remote endpoint for the socket.
                // The name of the
                // set to localhostd
                IPHostEntry ipHostInfo = Dns.GetHostEntry("127.0.0.1");
                IPAddress   ipAddress  = ipHostInfo.AddressList[0];
                IPEndPoint  remoteEP   = new IPEndPoint(ipAddress, port);

                // Create a TCP/IP socket.
                client = new Socket(ipAddress.AddressFamily,
                                    SocketType.Stream, ProtocolType.Tcp);

                // Connect to the remote endpoint.
                client.BeginConnect(remoteEP,
                                    new AsyncCallback(ConnectCallback), client);
                connectDone.WaitOne();

                // Send test data to the remote device.
                StateObject state = new StateObject();
                //SET UP THREAD for receive
                Thread receiveLoop = new Thread(new ThreadStart(() => {
                    try{
                        while (end)
                        {
                            Receive(client);
                            receiveDone.WaitOne();
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.ToString());
                    }
                }));
                receiveLoop.Start();



                //TEST SECTION
                ClientAccountRegister register = new ClientAccountRegister();
                register.login    = "******";
                register.name     = "user";
                register.password = "******";
                Send(client, Packet.Encode(PacketType.ClientAccountRegister, (ICanSerialize)register));
                sendDone.WaitOne();

                // register.login = "******";
                // register.name = "user2";
                // register.password = "******";
                // Send(client, Packet.Encode(PacketType.ClientAccountRegister, (ICanSerialize)register));
                // sendDone.WaitOne();

                // Console.WriteLine("Continue ...");
                // Console.ReadLine();

                ClientAccountLogin login = new ClientAccountLogin();
                login.login    = "******";
                login.password = "******";
                Send(client, Packet.Encode(PacketType.ClientAccountLogin, (ICanSerialize)login));
                sendDone.WaitOne();
                Console.WriteLine("Sent login.");

                Console.WriteLine("Continue ...");
                Console.ReadLine();

                ClientRequestChannelList requestList = new ClientRequestChannelList();
                Send(client, Packet.Encode(PacketType.ClientRequestChannelList, (ICanSerialize)requestList));
                sendDone.WaitOne();
                Console.WriteLine("Sent list request.");
                Console.ReadLine();


                ClientRequestChannelAccess request = new ClientRequestChannelAccess();
                request.id       = 1;
                request.SenderID = Session.currentUser.id;
                Send(client, Packet.Encode(PacketType.ClientRequestChannelAccess, (ICanSerialize)request));
                sendDone.WaitOne();
                Console.WriteLine("Sent request.");

                // Console.WriteLine("ANY KEY TO TERMINATE ...");
                // Console.ReadLine();

                PacketSendMessage p = new PacketSendMessage();
                p.ChannelID = 1;
                p.message   = "test";
                p.userID    = 1;

                // Send(client, Packet.Encode(PacketType.ClientSendMessage, (ICanSerialize)p));
                // sendDone.WaitOne();

                // Release the socket.
                Console.WriteLine("ANY KEY TO TERMINATE ...");
                Console.ReadLine();
                end = false;
                client.Shutdown(SocketShutdown.Both);
                client.Close();
            } catch (Exception e) {
                Console.WriteLine(e.ToString());
            }
        }