Skip to content
This repository was archived by the owner on Sep 15, 2024. It is now read-only.

Commit 7c5487e

Browse files
Simplify using statements
1 parent e482902 commit 7c5487e

2 files changed

Lines changed: 164 additions & 168 deletions

File tree

Scripts/Netcode/Client/ENetClient.cs

Lines changed: 72 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -51,93 +51,91 @@ private async Task ENetThreadWorker(string ip, ushort port)
5151
Thread.CurrentThread.Name = "Client";
5252
Library.Initialize();
5353

54-
using (var client = new Host())
55-
{
56-
var address = new Address();
57-
address.SetHost(ip);
58-
address.Port = port;
59-
client.Create();
54+
using var client = new Host();
55+
var address = new Address();
56+
address.SetHost(ip);
57+
address.Port = port;
58+
client.Create();
6059

61-
//GDLog("Attempting to connect to the game server...");
62-
var peer = client.Connect(address);
60+
//GDLog("Attempting to connect to the game server...");
61+
var peer = client.Connect(address);
6362

64-
uint pingInterval = 1000; // Pings are used both to monitor the liveness of the connection and also to dynamically adjust the throttle during periods of low traffic so that the throttle has reasonable responsiveness during traffic spikes.
65-
uint timeout = 5000; // Will be ignored if maximum timeout is exceeded
66-
uint timeoutMinimum = 5000; // The timeout for server not sending the packet to the client sent from the server
67-
uint timeoutMaximum = 5000; // The timeout for server not receiving the packet sent from the client
63+
uint pingInterval = 1000; // Pings are used both to monitor the liveness of the connection and also to dynamically adjust the throttle during periods of low traffic so that the throttle has reasonable responsiveness during traffic spikes.
64+
uint timeout = 5000; // Will be ignored if maximum timeout is exceeded
65+
uint timeoutMinimum = 5000; // The timeout for server not sending the packet to the client sent from the server
66+
uint timeoutMaximum = 5000; // The timeout for server not receiving the packet sent from the client
6867

69-
peer.PingInterval(pingInterval);
70-
peer.Timeout(timeout, timeoutMinimum, timeoutMaximum);
68+
peer.PingInterval(pingInterval);
69+
peer.Timeout(timeout, timeoutMinimum, timeoutMaximum);
7170

72-
Running = true;
71+
Running = true;
7372

74-
while (!CancelTokenSource.IsCancellationRequested)
75-
{
76-
var polled = false;
73+
while (!CancelTokenSource.IsCancellationRequested)
74+
{
75+
var polled = false;
7776

78-
// ENet Cmds from Godot Thread
79-
while (ENetCmds.TryDequeue(out ENetCmd cmd))
77+
// ENet Cmds from Godot Thread
78+
while (ENetCmds.TryDequeue(out ENetCmd cmd))
79+
{
80+
switch (cmd.Opcode)
8081
{
81-
switch (cmd.Opcode)
82-
{
83-
case ENetOpcode.ClientWantsToExitApp:
84-
case ENetOpcode.ClientWantsToDisconnect:
85-
peer.Disconnect(0);
86-
break;
87-
}
82+
case ENetOpcode.ClientWantsToExitApp:
83+
case ENetOpcode.ClientWantsToDisconnect:
84+
peer.Disconnect(0);
85+
break;
8886
}
87+
}
8988

90-
// Outgoing
91-
while (Outgoing.TryRemove(OutgoingId, out ClientPacket clientPacket))
89+
// Outgoing
90+
while (Outgoing.TryRemove(OutgoingId, out ClientPacket clientPacket))
91+
{
92+
OutgoingId--;
93+
byte channelID = 0; // The channel all networking traffic will be going through
94+
var packet = default(Packet);
95+
packet.Create(clientPacket.Data, clientPacket.PacketFlags);
96+
//Log("Sent packet: " + (ClientPacketOpcode)clientPacket.Opcode);
97+
peer.Send(channelID, ref packet);
98+
}
99+
100+
while (!polled)
101+
{
102+
if (client.CheckEvents(out Event netEvent) <= 0)
92103
{
93-
OutgoingId--;
94-
byte channelID = 0; // The channel all networking traffic will be going through
95-
var packet = default(Packet);
96-
packet.Create(clientPacket.Data, clientPacket.PacketFlags);
97-
//Log("Sent packet: " + (ClientPacketOpcode)clientPacket.Opcode);
98-
peer.Send(channelID, ref packet);
104+
if (client.Service(15, out netEvent) <= 0)
105+
break;
106+
107+
polled = true;
99108
}
100109

101-
while (!polled)
110+
switch (netEvent.Type)
102111
{
103-
if (client.CheckEvents(out Event netEvent) <= 0)
104-
{
105-
if (client.Service(15, out netEvent) <= 0)
106-
break;
107-
108-
polled = true;
109-
}
110-
111-
switch (netEvent.Type)
112-
{
113-
case EventType.Connect:
114-
Connected = 1;
115-
Connect(netEvent);
116-
break;
117-
118-
case EventType.Receive:
119-
// Receive
120-
var packet = netEvent.Packet;
121-
if (packet.Length > GamePacket.MaxSize)
122-
{
123-
Log($"Tried to read packet from server of size {packet.Length} when max packet size is {GamePacket.MaxSize}");
124-
packet.Dispose();
125-
continue;
126-
}
127-
128-
NetworkManager.GodotCmds.Enqueue(new GodotCmd(GodotOpcode.ENetPacket, new PacketReader(packet)));
129-
break;
130-
131-
case EventType.Timeout:
132-
HandlePeerLeave(DisconnectOpcode.Timeout);
133-
Timeout(netEvent);
134-
break;
135-
136-
case EventType.Disconnect:
137-
HandlePeerLeave((DisconnectOpcode)netEvent.Data);
138-
Disconnect(netEvent);
139-
break;
140-
}
112+
case EventType.Connect:
113+
Connected = 1;
114+
Connect(netEvent);
115+
break;
116+
117+
case EventType.Receive:
118+
// Receive
119+
var packet = netEvent.Packet;
120+
if (packet.Length > GamePacket.MaxSize)
121+
{
122+
Log($"Tried to read packet from server of size {packet.Length} when max packet size is {GamePacket.MaxSize}");
123+
packet.Dispose();
124+
continue;
125+
}
126+
127+
NetworkManager.GodotCmds.Enqueue(new GodotCmd(GodotOpcode.ENetPacket, new PacketReader(packet)));
128+
break;
129+
130+
case EventType.Timeout:
131+
HandlePeerLeave(DisconnectOpcode.Timeout);
132+
Timeout(netEvent);
133+
break;
134+
135+
case EventType.Disconnect:
136+
HandlePeerLeave((DisconnectOpcode)netEvent.Data);
137+
Disconnect(netEvent);
138+
break;
141139
}
142140
}
143141

Scripts/Netcode/Server/ENetServer.cs

Lines changed: 92 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -46,128 +46,126 @@ public async Task ENetThreadWorker(ushort port, int maxClients)
4646

4747
Library.Initialize();
4848

49-
using (Host server = new Host())
49+
using var server = new Host();
50+
Address address = new Address();
51+
address.Port = port;
52+
53+
try
54+
{
55+
server.Create(address, maxClients);
56+
}
57+
catch (Exception e)
58+
{
59+
var message = $"A server is running on port {port} already! {e.Message}";
60+
Log(message);
61+
NetworkManager.GodotCmds.Enqueue(new GodotCmd(GodotOpcode.PopupMessage, message));
62+
await GodotModules.Netcode.Client.ENetClient.Stop();
63+
await Stop();
64+
return;
65+
}
66+
67+
Log($"Server listening on port {port}");
68+
Running = true;
69+
70+
while (!CancelTokenSource.IsCancellationRequested)
5071
{
51-
Address address = new Address();
52-
address.Port = port;
72+
bool polled = false;
5373

54-
try
74+
// ENet Cmds
75+
while (ENetCmds.TryDequeue(out ENetCmd cmd))
5576
{
56-
server.Create(address, maxClients);
77+
var opcode = cmd.Opcode;
78+
79+
// Host client wants to stop the server
80+
switch (opcode)
81+
{
82+
case ENetOpcode.ClientWantsToExitApp:
83+
CancelTokenSource.Cancel();
84+
KickAll(DisconnectOpcode.Stopping);
85+
break;
86+
}
5787
}
58-
catch (Exception e)
88+
89+
// Outgoing
90+
while (Outgoing.TryDequeue(out ServerPacket packet))
5991
{
60-
var message = $"A server is running on port {port} already! {e.Message}";
61-
Log(message);
62-
NetworkManager.GodotCmds.Enqueue(new GodotCmd(GodotOpcode.PopupMessage, message));
63-
await GodotModules.Netcode.Client.ENetClient.Stop();
64-
await Stop();
65-
return;
92+
foreach (var peer in packet.Peers)
93+
Send(packet, peer);
6694
}
6795

68-
Log($"Server listening on port {port}");
69-
Running = true;
70-
71-
while (!CancelTokenSource.IsCancellationRequested)
96+
while (!polled)
7297
{
73-
bool polled = false;
74-
75-
// ENet Cmds
76-
while (ENetCmds.TryDequeue(out ENetCmd cmd))
98+
if (server.CheckEvents(out Event netEvent) <= 0)
7799
{
78-
var opcode = cmd.Opcode;
100+
if (server.Service(15, out netEvent) <= 0)
101+
break;
79102

80-
// Host client wants to stop the server
81-
switch (opcode)
82-
{
83-
case ENetOpcode.ClientWantsToExitApp:
84-
CancelTokenSource.Cancel();
85-
KickAll(DisconnectOpcode.Stopping);
86-
break;
87-
}
103+
polled = true;
88104
}
89105

90-
// Outgoing
91-
while (Outgoing.TryDequeue(out ServerPacket packet))
92-
{
93-
foreach (var peer in packet.Peers)
94-
Send(packet, peer);
95-
}
106+
var peer = netEvent.Peer;
107+
var eventType = netEvent.Type;
96108

97-
while (!polled)
109+
if (eventType == EventType.Receive)
98110
{
99-
if (server.CheckEvents(out Event netEvent) <= 0)
111+
// Receive
112+
var packet = netEvent.Packet;
113+
if (packet.Length > GamePacket.MaxSize)
100114
{
101-
if (server.Service(15, out netEvent) <= 0)
102-
break;
103-
104-
polled = true;
115+
Log($"Tried to read packet from server of size {packet.Length} when max packet size is {GamePacket.MaxSize}");
116+
packet.Dispose();
117+
continue;
105118
}
106119

107-
var peer = netEvent.Peer;
108-
var eventType = netEvent.Type;
120+
var packetReader = new PacketReader(packet);
121+
var opcode = (ClientPacketOpcode)packetReader.ReadByte();
109122

110-
if (eventType == EventType.Receive)
111-
{
112-
// Receive
113-
var packet = netEvent.Packet;
114-
if (packet.Length > GamePacket.MaxSize)
115-
{
116-
Log($"Tried to read packet from server of size {packet.Length} when max packet size is {GamePacket.MaxSize}");
117-
packet.Dispose();
118-
continue;
119-
}
120-
121-
var packetReader = new PacketReader(packet);
122-
var opcode = (ClientPacketOpcode)packetReader.ReadByte();
123-
124-
//Log($"Received packet: {opcode}");
125-
126-
if (!HandlePacket.ContainsKey(opcode))
127-
{
128-
Utils.LogErr($"[Server]: Received malformed opcode: {opcode} (Ignoring)");
129-
break;
130-
}
131-
132-
var handlePacket = HandlePacket[opcode];
133-
try
134-
{
135-
handlePacket.Read(packetReader);
136-
}
137-
catch (System.IO.EndOfStreamException)
138-
{
139-
Utils.LogErr($"[Server]: Received malformed opcode: {opcode} (Ignoring)");
140-
break;
141-
}
142-
handlePacket.Handle(netEvent.Peer);
143-
144-
packetReader.Dispose();
145-
}
146-
else if (eventType == EventType.Connect)
123+
//Log($"Received packet: {opcode}");
124+
125+
if (!HandlePacket.ContainsKey(opcode))
147126
{
148-
// Connect
149-
SomeoneConnected = true;
150-
Peers.Add(netEvent.Peer.ID, netEvent.Peer);
151-
Connect(netEvent);
127+
Utils.LogErr($"[Server]: Received malformed opcode: {opcode} (Ignoring)");
128+
break;
152129
}
153-
else if (eventType == EventType.Disconnect)
130+
131+
var handlePacket = HandlePacket[opcode];
132+
try
154133
{
155-
// Disconnect
156-
Peers.Remove(netEvent.Peer.ID);
157-
Disconnect(netEvent);
134+
handlePacket.Read(packetReader);
158135
}
159-
else if (eventType == EventType.Timeout)
136+
catch (System.IO.EndOfStreamException)
160137
{
161-
// Timeout
162-
Peers.Remove(netEvent.Peer.ID);
163-
Timeout(netEvent);
138+
Utils.LogErr($"[Server]: Received malformed opcode: {opcode} (Ignoring)");
139+
break;
164140
}
141+
handlePacket.Handle(netEvent.Peer);
142+
143+
packetReader.Dispose();
144+
}
145+
else if (eventType == EventType.Connect)
146+
{
147+
// Connect
148+
SomeoneConnected = true;
149+
Peers.Add(netEvent.Peer.ID, netEvent.Peer);
150+
Connect(netEvent);
151+
}
152+
else if (eventType == EventType.Disconnect)
153+
{
154+
// Disconnect
155+
Peers.Remove(netEvent.Peer.ID);
156+
Disconnect(netEvent);
157+
}
158+
else if (eventType == EventType.Timeout)
159+
{
160+
// Timeout
161+
Peers.Remove(netEvent.Peer.ID);
162+
Timeout(netEvent);
165163
}
166164
}
167-
168-
server.Flush();
169165
}
170166

167+
server.Flush();
168+
171169
Log("Server stopped");
172170

173171
while (ConcurrentQueuesWorking())

0 commit comments

Comments
 (0)