示例#1
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            ipaddr = IPAddress.Parse(GetIP());
            //
            serverSocket = new TcpListener(ipaddr, 13000);
            clientSocket = default(TcpClient);
            counter      = 0;
            // Starting server
            serverSocket.Start();
            backgroundWorker1.ReportProgress(22);
            Debug.Write("Server started");
            counter = 0;

            while (true)
            {
                // enter into an infinite while loop to listen to multiple clients
                counter             += 1;
                clientSocket         = serverSocket.AcceptTcpClient();
                clientSocket.NoDelay = true;
                pc = counter;
                backgroundWorker1.ReportProgress(counter);
                // once the connection is accepted, create a new client object
                handleClinet client = new handleClinet();
                //  call the startClient
                client.startClient(clientSocket, Convert.ToString(counter));
            }
            serverSocket.Stop();
        }
示例#2
0
        //start listening to clients request
        public async void serverStart()
        {
            try
            {
                serverListener = new TcpListener(IPAddress.Parse(serverIp), 8006);
                int counter = 0;
                serverListener.Start();
                serverLog.AppendText("Server Started\n");

                counter = 0;
                while (true)
                {
                    serverLog.AppendText("wait for connections\n");
                    TcpClient clientSocket = await serverListener.AcceptTcpClientAsync();

                    counter += 1;
                    serverLog.AppendText("Client No:" + Convert.ToString(counter) + " started!\n");
                    handleClinet client = new handleClinet();
                    client.startClient(clientSocket, Convert.ToString(counter));
                }
            }
            catch (Exception e)
            {
                serverLog.AppendText(e.ToString());
            }
            finally
            {
                serverLog.AppendText("exit");
                serverListener.Stop();
            }
        }
示例#3
0
            static void Main(string[] args)
            {
                Console.WriteLine("Welcome to HydroMessage server ver 0.1");
                TcpListener serverSocket = new TcpListener(1622);
                TcpClient   clientSocket = default(TcpClient);
                int         counter      = 0;

                serverSocket.Start();
                Console.WriteLine("Server started, waiting for clients");
                counter = 0;
                while ((true))
                {
                    counter     += 1;
                    clientSocket = serverSocket.AcceptTcpClient();

                    byte[] bytesFrom      = new byte[10025];
                    string dataFromClient = null;

                    NetworkStream networkStream = clientSocket.GetStream();
                    try { networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize); }
                    catch (System.ArgumentOutOfRangeException) { }
                    dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);
                    dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));

                    clientsList.Add(dataFromClient, clientSocket);

                    broadcast(dataFromClient + " Joined ", dataFromClient, false);

                    Console.WriteLine(dataFromClient + " Joined this server ");
                    handleClinet client = new handleClinet();
                    client.startClient(clientSocket, dataFromClient, clientsList);
                }

                clientSocket.Close();
                serverSocket.Stop();
                Console.WriteLine("exit");
                Console.ReadLine();
            }
示例#4
0
        private void waitforconnection_DoWork(object sender, DoWorkEventArgs e)
        {
            TcpListener serversocket = new TcpListener(8001);
            TcpClient   clientSocket = default(TcpClient);

            try
            {
                serversocket.Start();
                int counter = 0;
                MessageBox.Show("Uruchomiono serwer");
                while (true)
                {
                    counter++;
                    clientSocket = serversocket.AcceptTcpClient();
                    handleClinet client = new handleClinet(this);
                    client.startClient(clientSocket, counter.ToString());
                    clientSocket.Close();
                    serversocket.Stop();
                }
            }catch (Exception ex)
            {
                MessageBox.Show("Wprowadzono bledny adres serwera.");
            }
        }
示例#5
0
        public void cycleThread()
        {
            while ((true))
            {

                clientSocket = serverSocket.AcceptTcpClient();

                byte[] bytesFrom = new byte[10025];
                string dataFromClient = null;

                NetworkStream networkStream = clientSocket.GetStream();
                networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
                dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);
                dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));

                clientsList.Add(dataFromClient, clientSocket);

                broadcast(dataFromClient + " Joined ", dataFromClient, false);

                Console.WriteLine(dataFromClient + " Joined chat room ");
                handleClinet client = new handleClinet();
                client.startClient(clientSocket, dataFromClient, clientsList);
            }
        }
示例#6
0
        static void Main(string[] args)
        {
            TcpListener serverSocket = new TcpListener(8888);
            TcpClient   clientSocket = default(TcpClient);
            int         counter      = 0;

            serverSocket.Start();
            Console.WriteLine("Chat Server Started ....");
            counter = 0;
            while ((true))
            {
                counter     += 1;
                clientSocket = serverSocket.AcceptTcpClient();

                byte[] bytesFrom      = new byte[10025];
                string dataFromClient = null;

                NetworkStream networkStream = clientSocket.GetStream();
                networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
                dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);
                dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));

                clientsList.Add(dataFromClient, clientSocket);

                broadcast(dataFromClient + " Joined ", dataFromClient, false);

                Console.WriteLine(dataFromClient + " Joined chat room ");
                handleClinet client = new handleClinet();
                client.startClient(clientSocket, dataFromClient, clientsList);
            }

            clientSocket.Close();
            serverSocket.Stop();
            Console.WriteLine("exit");
            Console.ReadLine();
        }
示例#7
0
        static void Main(string[] args)
        {
            IPEndPoint  iPEndPoint   = new IPEndPoint(IPAddress.Any, PORT_NO);
            TcpListener serverSocket = new TcpListener(iPEndPoint);
            TcpClient   clientSocket = default(TcpClient);
            int         counter      = 0;

            serverSocket.Start();
            NewLog("Server Started");

            while (true)
            {
                clientSocket = serverSocket.AcceptTcpClient();
                string[] omitPosts = File.ReadAllLines("Omit Posts.txt");
                string   ip        = ((IPEndPoint)clientSocket.Client.RemoteEndPoint).Address.ToString();
                if (Array.IndexOf(omitPosts, ip) < 0)
                {
                    counter += 1;
                    NewLog($"Client No: {Convert.ToString(counter)} (IP {ip}) connected!");
                    handleClinet client = new handleClinet();
                    client.startClient(clientSocket, Convert.ToString(counter));
                }
            }
        }
示例#8
0
    static void Main(string[] args)
    {
        //------------- Handle ctrl-c -------------//
        Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e)
        {
            e.Cancel  = true;
            isRunning = false;
            serverSocket.Stop();
        };

        //------------- At start gather all file names into an array -------------//
        d     = new DirectoryInfo(Directory.GetCurrentDirectory());
        Files = d.GetFiles("*.log"); //Getting log files

        //------------- Initialize client info array -------------//
        infoList = new Info[serverSize];
        for (int i = 0; i < serverSize; ++i)
        {
            infoList[i] = new Info();
        }

        //------------- Initialize mutex locks -------------//
        fileLock     = new Mutex();
        positionLock = new Mutex();

        TcpClient clientSocket = default(TcpClient);

        serverSocket.Start();
        Console.WriteLine("Waiting for connection...");

        while (isRunning)
        {
            if (clientCounter < serverSize)
            {
                try
                {
                    if (clientCounter >= serverSize)
                    {
                        continue;
                    }

                    clientSocket = serverSocket.AcceptTcpClient();
                    //------------- Give user an id to track current coordinates -------------//
                    int availableId = -1;
                    positionLock.WaitOne();
                    for (int i = 0; i < serverSize; ++i)
                    {
                        if (!(infoList[i].hold))
                        {
                            availableId      = i;
                            infoList[i].hold = true;
                            clientCounter   += 1;
                            break;
                        }
                    }
                    positionLock.ReleaseMutex();
                    Console.WriteLine("Client No: " + Convert.ToString(availableId) + " is connected.");
                    handleClinet client = new handleClinet();
                    client.clientID = availableId;
                    client.startClient(clientSocket);
                }
                catch (SocketException e)
                {
                    if ((e.SocketErrorCode == SocketError.Interrupted))
                    {
                        Console.WriteLine("Socket listening is ended.");
                    }
                }
            }
        }
        if (clientSocket != null)
        {
            clientSocket.Close();
        }
        serverSocket.Stop();
    }