コード例 #1
0
        public void Start(string ipString)
        {
            IPAddress ip = IPAddress.Parse(ipString);
            TcpListener serverSocket = new TcpListener(ip, 8888);
            TcpClient clientSocket = default(TcpClient);
            int counter = 0;

            serverSocket.Start();

            counter = 0;
            while ((true))
            {
                counter += 1;
                clientSocket = serverSocket.AcceptTcpClient();
                clientSocket.SendBufferSize = Constants.ServerToClientBufferSize;
                clientSocket.ReceiveBufferSize = Constants.ClientToServerBufferSize;

                byte[] bytesFrom = new byte[clientSocket.ReceiveBufferSize];
                string dataFromClient = null;

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

                if (!dataFromClient.Contains('$'))
                {
                    Console.WriteLine("Received bad data from new joiner");
                    Console.WriteLine(dataFromClient);
                    continue;
                }
                dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));

                Player player = new Player();
                ClientHandler client = new ClientHandler();
                PlayerClientDictionary.Add(player, client);
                client.UserInputMethod = UserInputMethod;
                client.Start(player, clientSocket);

                NewUserMethod(player, dataFromClient);
            }
        }