public NetworkConnection(int clientId, NetworkMessageReceiver networkMessageReceiver, NetworkMessageWriter networkMessageWriter)
 {
     ClientId = clientId;
     _networkMessageReceiver = networkMessageReceiver;
     _networkMessageWriter   = networkMessageWriter;
     _networkMessageReceiver.MessageRecieved += ElevateMessageEvent;
     _isReceiving    = true;
     _receiverThread = new Thread(GetMessages);
     _receiverThread.Start();
 }
        private NetworkConnection CreateNetworkClient(Socket handler)
        {
            var clientId = NEXT_CLIENT_ID++;
            NetworkMessageReceiver networkMessageReceiver = new NetworkMessageReceiver(clientId, handler, 1024);
            NetworkMessageWriter   networkMessageWriter   = new NetworkMessageWriter(handler);
            NetworkConnection      networkConnection      = new NetworkConnection(clientId, networkMessageReceiver, networkMessageWriter);

            networkConnection.MessageRecieved += RebroadcastMessage;
            return(networkConnection);
        }
Example #3
0
        public void Connect()
        {
            try
            {
                IPAddress  ipAddress  = IPAddress.Parse(_ipString);
                IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, NetworkConstants.SERVER_PORT);

                Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                _networkWriter = new NetworkMessageWriter(clientSocket);

                clientSocket.BeginConnect(ipEndPoint, ClientConnectCallback, clientSocket);
                connectionAsyncLock.WaitOne();
            }
            catch (Exception e)
            {
                throw new NetworkingException(e.Message);
            }
        }
Example #4
0
 public void Close()
 {
     Console.WriteLine("Shutting down client connection...");
     _networkWriter?.Dispose();
     _networkWriter = null;
 }