Example #1
0
 private void CloseRemoteClientConnection(RemoteReaderState state)
 {
     lock (areaLookup)
     {
         foreach (KeyValuePair<Guid, EvilDPSArea> kvp in areaLookup)
         {
             RemoveAreaAsync(kvp.Value);
         }
         areaLookup.Clear();
     }
 }
Example #2
0
 private void CloseRemoteConnection(RemoteReaderState state)
 {
     if (dedicatedServer)
     {
         RemoveDedicatedRemoteConnection(state);
     }
     else
     {
         RemoveAreaAsync(state.area);
     }
 }
Example #3
0
 private void BroadcastDedicated(RemoteReaderState state, int updatePeriod, int averagePeriod, float dpsOut, float dpsIn, float hOut, float hIn, float pdOut, float pdIn)
 {
     lock (connections)
     {
         for (int i = 0; i < connections.Count; i++)
         {
             if (state.connectId != connections[i].connectId)
             {
                 BinaryWriter writer = new BinaryWriter(connections[i].client.GetStream());
                 writer.Write(stateUpdateGuid.ToByteArray());
                 writer.Write(state.connectId.ToByteArray());
                 writer.Write(updatePeriod);
                 writer.Write(averagePeriod);
                 writer.Write(dpsOut);
                 writer.Write(dpsIn);
                 writer.Write(hOut);
                 writer.Write(hIn);
                 writer.Write(pdOut);
                 writer.Write(pdIn);
             }
         }
     }
 }
Example #4
0
 private void AddRemote(TcpClient newRemote)
 {
     newRemote.NoDelay = true;
     RemoteReaderState state = new RemoteReaderState();
     state.client = newRemote;
     state.buffer = new byte[1024];
     newRemote.GetStream().BeginRead(state.buffer, 0, 1024, ReceiveRemoteData, state);
 }
Example #5
0
 private void AddDedicatedRemoteConnection(RemoteReaderState state)
 {
     lock (connections)
     {
         connections.Add(state);
         BinaryWriter newWriter = new BinaryWriter(state.client.GetStream());
         for (int i = 0; i < connections.Count - 1; i++)
         {
             BinaryWriter writer = new BinaryWriter(connections[i].client.GetStream());
             writer.Write(helloGuid.ToByteArray());
             writer.Write(state.connectId.ToByteArray());
             writer.Write(state.name);
             newWriter.Write(helloGuid.ToByteArray());
             newWriter.Write(connections[i].connectId.ToByteArray());
             newWriter.Write(connections[i].name);
         }
     }
 }
Example #6
0
 private void RemoveDedicatedRemoteConnection(RemoteReaderState state)
 {
     lock (connections)
     {
         connections.Remove(state);
         for (int i = 0; i < connections.Count; i++)
         {
             BinaryWriter writer = new BinaryWriter(connections[i].client.GetStream());
             writer.Write(byeGuid.ToByteArray());
             writer.Write(state.connectId.ToByteArray());
         }
     }
 }
Example #7
0
 private void RemoteConnect()
 {
     try
     {
         lock (remoteClientLock)
         {
             if (remoteClient != null)
             {
                 // TODO: only do this if hostname/port has changed or connection is dead.
                 RemoteDisconnect();
             }
             if (remoteClient == null)
             {
                 TcpClient newClient = new TcpClient(remoteHost, remotePort);
                 newClient.NoDelay = true;
                 BinaryWriter writer = new BinaryWriter(newClient.GetStream());
                 writer.Write(introGuid.ToByteArray());
                 writer.Write(remoteName);
                 remoteClient = newClient;
                 RemoteReaderState state = new RemoteReaderState();
                 state.buffer = new byte[1024];
                 state.client = remoteClient;
                 newClient.GetStream().BeginRead(state.buffer, 0, 1024, new AsyncCallback(RemoteClientReceive), state);
             }
         }
     }
     catch
     {
     }
 }