public void RegistMessageHandler(int id, Action <byte[]> messageHandler) { if (!m_MessagHandlerDic.ContainsKey(id)) { m_MessagHandlerDic.Add(id, messageHandler); } else { NetLogger.LogError(NetUtil.CLIENT_LOG_TAG, "The handler has been added.id = " + id); } }
public void SendWith(Socket socket, byte[] bytes) { if (IsConnected && socket.Connected) { socket.BeginSend(bytes, 0, bytes.Length, SocketFlags.None, OnSended, socket); } else { NetLogger.LogError(logTag, "the net is disconnected"); } }
public bool Connect(string ipString, int port) { if (m_ClientSocket != null) { NetLogger.LogError(NetUtil.CLIENT_LOG_TAG, "The socket has been created"); return(false); } m_ClientSocket = new TcpClientSocket(); m_ClientSocket.OnConnect += OnConnected; m_ClientSocket.OnReceive += OnReceived; m_ClientSocket.OnDisconnect += OnDisconnected; Status = ClientNetworkStatus.Connecting; m_ClientSocket.Connect(IPAddress.Parse(ipString), port); return(true); }
public void Listen(int port, int backlog = 100) { socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { socket.Bind(new IPEndPoint(IPAddress.Any, port)); socket.Listen(backlog); IsConnected = true; NetLogger.LogInfo(logTag, $"Listening on port {port}..."); Accept(); } catch (Exception ex) { socket = null; NetLogger.LogError(logTag, $"Listen failed.message = {ex.Message}"); } }
void OnConnected(IAsyncResult ar) { var socket = (Socket)ar.AsyncState; try { socket.EndConnect(ar); NetLogger.LogInfo(logTag, "Connected"); OnConnect?.Invoke(this, null); StartReceiving(socket); } catch (Exception ex) { NetLogger.LogError(logTag, $"Connected failed .message = {ex.Message}"); TriggerOnDisconnect(); } }