/// <summary> /// Disconnects all connected clients. /// </summary> private void disconnectClients() { for (int i = 0; i < connectedClients.Count; i++) { networkDriver.Disconnect(networkConnections[i]); } }
/// <summary> /// Disconnects the client from the server. /// </summary> public void disconnectFromServer() { if (connectionToServer.IsCreated) { networkDriver.Disconnect(connectionToServer); networkEndPoint = default; } }
public void Execute(Entity entity, int jobIndex, ref NetworkStreamConnection connection, [ReadOnly] ref NetworkStreamRequestDisconnect disconnect) { driver.Disconnect(connection.Value); commandBuffer.AddComponent(jobIndex, entity, new NetworkStreamDisconnected { Reason = disconnect.Reason }); commandBuffer.RemoveComponent <NetworkStreamRequestDisconnect>(jobIndex, entity); }
void OnDestroy() { // All jobs must be completed before we can dispose the data they use jobHandler.Complete(); m_ClientDriver.Disconnect(m_clientToServerConnection[0]); m_ClientDriver.Dispose(); m_clientToServerConnection.Dispose(); pcc.GetStateEvent -= GetStateEventCallback; pcc.GetResultsEvent -= GetResultsEventCallback; }
public void Disconnect(int internalId) { for (int i = 0; i < m_Connections.Length; i++) { if (m_Connections[i].InternalId == internalId) { m_Driver.Disconnect(m_Connections[i]); ClientDisconnected(internalId); break; } } OnClientDisconnected?.Invoke(internalId); }
public void UdpC_ReconnectAndResend_ShouldReconnectAndResend() { using (var server = new UdpNetworkDriver(new NetworkDataStreamParameter { })) using (var client = new UdpNetworkDriver(new NetworkDataStreamParameter { })) { var serverPort = 50007; server.Bind(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); client.Bind(NetworkEndPoint.LoopbackIpv4); server.Listen(); NetworkConnection serverConnection, clientConnection; int maxIterations = 100; var id = client.Connect(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); ConnectTogether(server, client, maxIterations, out serverConnection, out clientConnection); client.Disconnect(id); server.ScheduleUpdate().Complete(); var data = new byte[1472]; var size = 1472; NetworkConnection from; Assert.AreEqual(ExperimentalEventType.Disconnect, PollEvent(ExperimentalEventType.Disconnect, maxIterations, server, ref data, out size, out from)); id = client.Connect(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); ConnectTogether(server, client, maxIterations, out serverConnection, out clientConnection); var message = new byte[] { (byte)'m', (byte)'e', (byte)'s', (byte)'s', (byte)'a', (byte)'g', (byte)'e' }; SendReceive(client, server, clientConnection, serverConnection, message, maxIterations); } }
public void Update() { if (!m_Socket.Listening && !conn.IsCreated) { conn = m_Socket.Connect(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); } else if (!m_Socket.Listening && dataCounter == 0 && !conn.IsCreated) { using (var message = new DataStreamWriter(7, Allocator.Persistent)) { message.Write((byte)'m'); message.Write((byte)'e'); message.Write((byte)'s'); message.Write((byte)'s'); message.Write((byte)'a'); message.Write((byte)'g'); message.Write((byte)'e'); conn.Send(m_Socket, message); } } else if (!m_Socket.Listening && conn.IsCreated && UnityEngine.Random.Range(0, 1000) < 10) { m_Socket.Disconnect(conn); conn = default(NetworkConnection); } NetworkConnection connection; DataStreamReader reader; var context = default(DataStreamReader.Context); var ev = m_Socket.PopEvent(out connection, out reader); if (ev == ExperimentalEventType.Empty) { return; } using (var writer = new DataStreamWriter(reader.Length, Allocator.Temp)) { unsafe { reader.ReadBytes(ref context, writer.GetUnsafePtr(), reader.Length); } switch (ev) { case ExperimentalEventType.Connect: connectCounter++; break; case ExperimentalEventType.Disconnect: conn = default(NetworkConnection); disconnectCounter++; break; case ExperimentalEventType.Data: dataCounter++; connection.Send(m_Socket, writer); break; } } }