public void Dispatch(Socket client) { var reader = new DataReciver(client); reader.OnComplete += Reader_OnComplete; reader.OnError += Reader_OnError; reader.OnReset += Reader_OnReset; reader.ReciveOneAsync(); }
private void Reader_OnComplete(DataReciver reader, byte[] buffer, int offset, int count) { var words = Encoding.UTF8.GetString(buffer, offset, count); words += temp; temp = string.Empty; _logger.LogDebug($"revice from client: {words}"); try { int index = 0; bool needRecive = false; while (true) { var firstIndex = words.IndexOf("\n"); if (firstIndex < 0) { temp += words; reader.ReciveOneAsync(); break; } var sub_words = words.Substring(index, firstIndex + 1); var res = handle(sub_words, reader.Socket); if (res.NeedRecive) { needRecive = true; } words = words.Replace(sub_words, string.Empty); if (string.IsNullOrEmpty(words)) { break; } } if (needRecive) { reader.ReciveOneAsync(); } } catch (Exception ex) { _logger.LogError(ex.ToString()); _logger.LogError($"handle fail msg:{words}"); // throw; reader.Socket.Send(new Message <LogMassage>() { MessageType = MessageType.Log, Content = new LogMassage(LogMsgType.Error, ex.Message) }); reader.ReciveOneAsync(); } }
public ClientConnection(FastTunnelServer fastTunnelServer, Socket accept, ILogger logerr) { Socket = accept; _logger = logerr; _fastTunnelServer = fastTunnelServer; _loginHandler = new LoginHandler(_logger); _heartHandler = new HeartMessageHandler(); _swapMsgHandler = new SwapMessageHandler(_logger); reader = new DataReciver(Socket); }
private void Reader_OnError(DataReciver send, SocketAsyncEventArgs e) { _logger.LogError("接收客户端数据异常 {0}", e.SocketError); }
private void Reader_OnReset(DataReciver send, Socket socket, SocketAsyncEventArgs e) { //offLineAction(socket); }
void Start() { menager = GameObject.Find("GameMenager").GetComponent <GameMenager>(); data = GameObject.Find("Arduino").GetComponent <DataReciver>(); rigidbody = GetComponent <Rigidbody>(); }
void Start() { data = GameObject.Find("Arduino").GetComponent <DataReciver>(); }