private void AcceptCallback(IAsyncResult result) { networkClientInterface connection = new networkClientInterface((Socket)result.AsyncState, result); try { // Start Receive connection.networkSocket.BeginReceive(connection.buffer, 0, connection.buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), connection); // Start new Accept serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), result.AsyncState); for (int i = 0; i < 1000; i++) { serverSocket.BeginAccept( new AsyncCallback(AcceptCallback), serverSocket); } } catch (SocketException) { closeConnection(connection); } catch (Exception e) { Console.WriteLine("DEBUG: " + e.ToString()); closeConnection(connection); } }
private void AcceptCallback(IAsyncResult result) { Protega___Server.Classes.CCstData.GetInstance(ApplicationID).Logger.writeInLog(4, Support.LogCategory.OK, Support.LoggerType.SERVER, "Protocol accepted"); //Wenns klappt, using drum! networkClientInterface connection = new networkClientInterface((Socket)result.AsyncState, result); try { // Start Receive connection.networkSocket.BeginReceive(connection.buffer, 0, connection.buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), connection); // Start new Accept //serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), // result.AsyncState); //for (int i = 0; i < 1000; i++) serverSocket.BeginAccept( new AsyncCallback(AcceptCallback), serverSocket); } catch (SocketException e) { closeConnection(connection); } catch (Exception e) { Console.WriteLine("DEBUG: " + e.ToString()); closeConnection(connection); } }
private void ReceiveCallback(IAsyncResult result) { networkClientInterface connection = (networkClientInterface)result.AsyncState; try { //bytesread = count of bytes int bytesRead = connection.networkSocket.EndReceive(result); if (0 != bytesRead) { protAnalyseFunction(Encoding.UTF8.GetString(connection.buffer, 0, bytesRead), ref connection); connection.networkSocket.BeginReceive(connection.buffer, 0, connection.buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), connection); } else { closeConnection(connection); } } catch (SocketException) { closeConnection(connection); } catch (Exception) { closeConnection(connection); } }
public void sendMessage(string message, networkClientInterface client) { try { byte[] bytes = Encoding.UTF8.GetBytes(message); client.networkSocket.Send(bytes, bytes.Length, SocketFlags.None); } catch (Exception) { closeConnection(client); } }
public void sendMessage(string message, networkClientInterface client) { try { byte[] bytes = Encoding.Default.GetBytes(message); client.networkSocket.Send(bytes, bytes.Length, SocketFlags.None); Classes.CCstData.GetInstance(client.User.Application.ID).Logger.writeInLog(3, Support.LogCategory.OK, Support.LoggerType.SERVER, String.Format("Protocol sending succeeded. Protocol: {0}, Session: {1}, HardwareID: {2}", message, client.SessionID, client.User.ID)); } catch (Exception e) { Classes.CCstData.GetInstance(client.User.Application.ID).Logger.writeInLog(3, Support.LogCategory.ERROR, Support.LoggerType.SERVER, String.Format("Protocol sending failed. Protocol: {0}, Session: {1}, HardwareID: {2}. Error {3}", message, client.SessionID, client.User.ID, e.Message)); closeConnection(client); } }
private void ReceiveCallback(IAsyncResult result) { Classes.CCstData.GetInstance(ApplicationID).Logger.writeInLog(2, Support.LogCategory.OK, Support.LoggerType.SERVER, "Protocol received"); networkClientInterface connection = (networkClientInterface)result.AsyncState; try { //bytesread = count of bytes int bytesRead = connection.networkSocket.EndReceive(result); if (0 != bytesRead) { protAnalyseFunction(ref connection, Encoding.Default.GetString(connection.buffer, 0, bytesRead)); //connection.networkSocket.BeginReceive(connection.buffer, 0, // connection.buffer.Length, SocketFlags.None, // new AsyncCallback(ReceiveCallback), connection); } else { closeConnection(connection); } } catch (SocketException) { closeConnection(connection); try { connection.Dispose(); } catch (Exception e) { Console.WriteLine("Could not dispose connection! Error: " + e.Message); } } catch (Exception e) { closeConnection(connection); try { connection.Dispose(); } catch (Exception f) { Console.WriteLine("Could not dispose connection 2! Error: " + f.Message); } } }
public void closeConnection(networkClientInterface client) { client.networkSocket.Close(); }