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); }
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); }