Beispiel #1
0
        public MsgPipeTransferTests()
        {
            var ip = IPAddress.Loopback;

            var serverSocket = new Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            serverSocket.Bind(new IPEndPoint(ip, 0));
            serverSocket.Listen(1);

            var clientSocket = new Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            clientSocket.Connect(serverSocket.LocalEndPoint);

            _serverSidePipe = new ServerSideMsgPipe(serverSocket.Accept(), 64);
            _clientSidePipe = new ClientSideMsgPipe(clientSocket, 64);
        }
Beispiel #2
0
        public ClientSession(ClientConfig config, IClientSessionLogger log)
        {
            _log        = log;
            _sendBuffer = new byte[1024];

            _log?.Connecting(config.Host, config.Port);
            var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
            {
                NoDelay = true
            };

            socket.Connect(config.Host, config.Port);

            _log?.Joining(config.PlayerName, config.Game, config.Version);
            _pipe = new ClientSideMsgPipe(socket, config.MaxPlayers * 512);
            State = ClientSessionState.Joining;
            _pipe.SendMessageUsingBuffer(new ClientMsgJoin(config.Game, config.Version, config.PlayerName), _sendBuffer);
        }