国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

c#tcp備忘及networkstream.length此流不支持查找解決

2019-11-14 13:39:02
字體:
來源:轉載
供稿:網友

服務端

  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();        }

 

客戶端

TcpClient tcpClient = new TcpClient();
bool isRunning = true;


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; }

 

From:http://www.survivalescaperooms.com/xuejianxiyang/p/5085077.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 饶平县| 长武县| 南通市| 乌什县| 浏阳市| 潜山县| 广宁县| 汶上县| 明溪县| 玛多县| 新河县| 阿坝县| 巍山| 翁源县| 绍兴县| 迭部县| 建阳市| 东方市| 武义县| 巴楚县| 禄劝| 连城县| 莎车县| 喀喇沁旗| 五华县| 惠安县| 乐陵市| 济阳县| 江北区| 屏东市| 高阳县| 理塘县| 凌海市| 板桥市| 射洪县| 江源县| 丹江口市| 泾阳县| 陕西省| 高淳县| 茶陵县|