private void CloseRemoteClientConnection(RemoteReaderState state) { lock (areaLookup) { foreach (KeyValuePair<Guid, EvilDPSArea> kvp in areaLookup) { RemoveAreaAsync(kvp.Value); } areaLookup.Clear(); } }
private void CloseRemoteConnection(RemoteReaderState state) { if (dedicatedServer) { RemoveDedicatedRemoteConnection(state); } else { RemoveAreaAsync(state.area); } }
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); } } } }
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); }
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); } } }
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()); } } }
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 { } }