From f72cc03c660e3d500f1b8a5f831edd128b6b0491 Mon Sep 17 00:00:00 2001 From: Ivan Filipenkov Date: Fri, 18 Aug 2023 17:45:17 +0300 Subject: [PATCH] remove try catch in network --- DangerousD/GameCore/Network/NetworkManager.cs | 140 +++++++----------- 1 file changed, 52 insertions(+), 88 deletions(-) diff --git a/DangerousD/GameCore/Network/NetworkManager.cs b/DangerousD/GameCore/Network/NetworkManager.cs index 56ac3a1..ed6d2f2 100644 --- a/DangerousD/GameCore/Network/NetworkManager.cs +++ b/DangerousD/GameCore/Network/NetworkManager.cs @@ -21,27 +21,19 @@ namespace DangerousD.GameCore.Network private void Init(string IpAddress) { - try - { - socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - IPAddress address = IPAddress.Parse(IpAddress); - int port = 51873; - endPoint = new IPEndPoint(address, port); - } - catch { } + socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPAddress address = IPAddress.Parse(IpAddress); + int port = 51873; + endPoint = new IPEndPoint(address, port); } private void AcceptSockets() { while (true) { - try - { - Socket clientSocket = socket.Accept(); - clientSockets.Add(clientSocket); - Thread receiveThread = new Thread(BeginHostReceive); - receiveThread.Start(clientSocket); - } - catch { } + Socket clientSocket = socket.Accept(); + clientSockets.Add(clientSocket); + Thread receiveThread = new Thread(BeginHostReceive); + receiveThread.Start(clientSocket); } } @@ -50,46 +42,34 @@ namespace DangerousD.GameCore.Network Socket clientSocket = clSocket as Socket; while (clientSocket != null) { - try - { - byte[] bytesCount = new byte[4]; - clientSocket.Receive(bytesCount); - byte[] Data = new byte[BitConverter.ToInt32(bytesCount)]; - StateObject so = new StateObject(clientSocket, Data); - IAsyncResult count = clientSocket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, AsyncReceiveCallback, so); - } - catch { } + byte[] bytesCount = new byte[4]; + clientSocket.Receive(bytesCount); + byte[] Data = new byte[BitConverter.ToInt32(bytesCount)]; + StateObject so = new StateObject(clientSocket, Data); + IAsyncResult count = clientSocket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, AsyncReceiveCallback, so); } } public void HostInit(string IpAddress) { - try - { - Init(IpAddress); - socket.Bind(endPoint); - socket.Listen(4); - Thread acceptThread = new Thread(AcceptSockets); - acceptThread.Start(); - state = "Host"; - AppManager.Instance.SetMultiplayerState(MultiPlayerStatus.Host); - } - catch { } + Init(IpAddress); + socket.Bind(endPoint); + socket.Listen(4); + Thread acceptThread = new Thread(AcceptSockets); + acceptThread.Start(); + state = "Host"; + AppManager.Instance.SetMultiplayerState(MultiPlayerStatus.Host); } public void ClientInit(string IpAddress) { - try - { - Init(IpAddress); - socket.Connect(endPoint); - state = "Client"; - Thread.Sleep(10); - Thread ReceivingThread = new Thread(ReceiveMsgFromHost); - ReceivingThread.Start(); - NetworkTask connectionTask = new NetworkTask("Player"); - AppManager.Instance.NetworkTasks.Add(connectionTask); - AppManager.Instance.SetMultiplayerState(MultiPlayerStatus.Client); - } - catch { } + Init(IpAddress); + socket.Connect(endPoint); + state = "Client"; + Thread.Sleep(10); + Thread ReceivingThread = new Thread(ReceiveMsgFromHost); + ReceivingThread.Start(); + NetworkTask connectionTask = new NetworkTask("Player"); + AppManager.Instance.NetworkTasks.Add(connectionTask); + AppManager.Instance.SetMultiplayerState(MultiPlayerStatus.Client); } public void SendMsg(List networkTask, Socket ignoreSocket = null) { @@ -97,65 +77,49 @@ namespace DangerousD.GameCore.Network int count = Data.Length; if (state == "Host") { - try + foreach (Socket socket in clientSockets) { - foreach (Socket socket in clientSockets) + if (!(socket == ignoreSocket)) { - if (!(socket == ignoreSocket)) - { - socket.Send(BitConverter.GetBytes(count)); - socket.Send(Data); - } + socket.Send(BitConverter.GetBytes(count)); + socket.Send(Data); } } - catch { } } else { - try - { - socket.Send(BitConverter.GetBytes(count)); - socket.Send(Data); - } - catch { } + socket.Send(BitConverter.GetBytes(count)); + socket.Send(Data); } } private void ReceiveMsgFromHost() { while (true) { - try - { - byte[] bytesCount = new byte[4]; - socket.Receive(bytesCount); - byte[] Data = new byte[BitConverter.ToInt32(bytesCount)]; - StateObject so = new StateObject(socket, Data); - IAsyncResult count = socket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, AsyncReceiveCallback, so); - } - catch { } + byte[] bytesCount = new byte[4]; + socket.Receive(bytesCount); + byte[] Data = new byte[BitConverter.ToInt32(bytesCount)]; + StateObject so = new StateObject(socket, Data); + IAsyncResult count = socket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, AsyncReceiveCallback, so); } } private void AsyncReceiveCallback(IAsyncResult ar) { - try + StateObject so = ar.AsyncState as StateObject; + Socket clientSocket = so.workSocket; + int readCount = clientSocket.EndReceive(ar); + so.UploadedBytesCount += readCount; + so.sb.Append(Encoding.Unicode.GetString(so.buffer, 0, readCount)); + if (so.UploadedBytesCount < so.bufferSize) { - StateObject so = ar.AsyncState as StateObject; - Socket clientSocket = so.workSocket; - int readCount = clientSocket.EndReceive(ar); - so.UploadedBytesCount += readCount; - so.sb.Append(Encoding.Unicode.GetString(so.buffer, 0, readCount)); - if (so.UploadedBytesCount < so.bufferSize) - { - clientSocket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, new AsyncCallback(AsyncReceiveCallback), so); - } - else - { - List tasks = JsonConvert.DeserializeObject>(so.sb.ToString()); - GetReceivingMessages(tasks); - } + clientSocket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, new AsyncCallback(AsyncReceiveCallback), so); + } + else + { + List tasks = JsonConvert.DeserializeObject>(so.sb.ToString()); + GetReceivingMessages(tasks); } - catch { } } } }