Server.Server.stratServer C# (CSharp) Méthode

stratServer() public méthode

public stratServer ( String _ip, Int32 _port ) : void
_ip String
_port Int32
Résultat void
        public void stratServer(String _ip, Int32 _port)
        {
            try
            {
                serverThread = new Thread(() =>
                {
                    ipAddress = IPAddress.Parse(_ip);
                    tcpListener = new TcpListener(ipAddress, _port);
                    tcpListener.Start();

                    ServerInfoEventArgs args = new ServerInfoEventArgs();
                    args.consoleinfo = "The server is running at port " + _port + " ...\n";
                    OnNeedLog(args);
                    args.consoleinfo = "The local End point is: " + tcpListener.LocalEndpoint + "\n";
                    OnNeedLog(args);
                    args.consoleinfo = "Waiting for a connection.....\n";
                    OnNeedLog(args);

                    while (true)
                    {
                        if (tcpListener.Pending())
                        {
                            Console.WriteLine("Adding ID: " + Convert.ToString(idCounter));
                            Socket socket = tcpListener.AcceptSocket();
                            lobby.add(new ServerClient(
                                idCounter,
                                ((IPEndPoint)socket.RemoteEndPoint).Port.ToString(),
                                ((IPEndPoint)socket.RemoteEndPoint).Address.ToString(),
                                recieveData(socket, 100),
                                recieveData(socket, 100),
                                socket,
                                false
                            ));

                            idCounter++;
                            string sendString = ((IPEndPoint)socket.RemoteEndPoint).Address.ToString();
                            sendString += ";" + ((IPEndPoint)socket.RemoteEndPoint).Port.ToString();

                            socket.Send(new ASCIIEncoding().GetBytes(sendString));
                        }

                        List<ServerClient>clList = lobby.getClientlist();

                        foreach (ServerClient client in clList)
                        {
                            if (!client.startedrecive)
                            {
                                client.startedrecive = true;

                                Thread recieve = new Thread(() =>
                                {
                                    while (true)
                                    {
                                        recieveDone.Reset();
                                        StateObject state = new StateObject();
                                        state.workSocket = client.clientsocket;

                                        client.clientsocket.BeginReceive(state.buffer, 0, StateObject.BufferSize,
                                                                         0, new AsyncCallback(receiveCompleted), state);
                                        recieveDone.WaitOne();
                                    }

                                });

                                recieve.Start();
                            }

                        }

                    }

                });

                serverThread.Start();

            }
            catch (Exception e)
            {
                Console.WriteLine("Error..... " + e.Message);
            }
        }