星空网 > 软件开发 > ASP.net

tcp备忘及networkstream.length此流不支持查找解决

服务端

  bool isRunning = true;
  MouseKeyBoard mk = new MouseKeyBoard();

void InitTcpServer(int port)    {      Thread t = new Thread(() =>      {        TcpListener listener = new TcpListener(IPAddress.Any, port);        listener.Start();        Log("监听:" + port);        while (isRunning)        {          var tcpClient = listener.AcceptTcpClient();          try          {            Thread t2 = new Thread(() =>            {              NetworkStream clientStream = tcpClient.GetStream();                            while (isRunning)              {                try                {                  if (!clientStream.DataAvailable)                  {                    Thread.Sleep(100); //否则死循环,cpu占用超高                    continue;                  }                  byte[] buffer = new byte[tcpClient.Available]; //new byte[clientStream.Length]; //报错此流不支持查找                  int readBytes = 0;                  readBytes = clientStream.Read(buffer, 0, buffer.Length);                   clientStream.Flush();                                    string request = Encoding.UTF8.GetString(buffer).Trim();                  Log(request);                  if (request.StartsWith("SetTime|"))                  {                    var str = DateTime.Parse(request.Substring(8)).ToString("yyyyMMdd") + DateTime.Now.ToString("HHmmss");                    SetLocalTimeByStr(str);                    clientStream.Flush();                    clientStream.Write(Encoding.Default.GetBytes("ok"), 0, 2); //发送给客户端                    clientStream.Flush();                  }                  else if (request.StartsWith("MouseClick|"))                  {                    var arr = request.Split('|');                    if (arr.Length >= 2)                    {                      mk.MouseClick(arr[1]);                    }                  }                  else if (request.StartsWith("ShutDown|"))                  {                    ExecuteCmd("shutdown -s -t 120");                  }                  else if (request.StartsWith("CancelShutDown|"))                  {                    ExecuteCmd("shutdown -a");                  }else if (request.StartsWith("SendString"))                  {                    var arr = request.Split('|');                    if (arr.Length >= 2)                    {                      string str = arr[1];                      this.button1.BeginInvoke(new Action(() => {                        mk.SendKeys(str);                      }));                                          }                  }                }                catch (Exception ex)                {                  Log("ex|" + ex.Message + ex.StackTrace);                }                Thread.Sleep(100);              }            });            t2.Start();          }          catch (Exception ex2)          {            Log("ex2|" + ex2.Message + ex2.StackTrace);          }          Thread.Sleep(100);        }      });      t.Start();    }

 

客户端

private void button2_Click(object sender, EventArgs e)    {      tcpClient.Connect(new IPEndPoint(IPAddress.Parse("192.168.0.168"), Convert.ToInt32(this.textBox2.Text.Trim())));      MessageBox.Show("连接成功.");    }    private void button1_Click(object sender, EventArgs e)    {      Thread t = new Thread(() =>      {        NetworkStream clientStream = tcpClient.GetStream();                string request = "SetTime|" + this.textBox1.Text.Trim();                byte[] requestBuffer = Encoding.Default.GetBytes(request);                clientStream.Write(requestBuffer, 0, requestBuffer.Length);                clientStream.Flush();                var buffer = new byte[1024];        while (isRunning)        {          clientStream.Read(buffer, 0, buffer.Length);          string str = Encoding.Default.GetString(buffer).Trim();          if (str.StartsWith("ok"))          {            Invoke(() =>            {              MessageBox.Show("修改时间成功.");            });          }          Thread.Sleep(100);        }      });      t.Start();      this.button1.Enabled = false;    }

 




原标题:tcp备忘及networkstream.length此流不支持查找解决

关键词:net

net
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

国内陆运到越南:https://www.goluckyvip.com/tag/104627.html
船运到越南:https://www.goluckyvip.com/tag/104628.html
到越南船运:https://www.goluckyvip.com/tag/104629.html
人民币汇率:https://www.goluckyvip.com/tag/10463.html
越南到船运:https://www.goluckyvip.com/tag/104630.html
越南货运港口:https://www.goluckyvip.com/tag/104631.html
仿品独立站从建站、推广、收款到底怎么玩?:https://www.kjdsnews.com/a/1836312.html
仿品独立站从建站、推广、收款到底怎么玩?:https://www.goluckyvip.com/news/186215.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流