Socket远程控制客户端
2009-11-05 15:17
162 查看
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.IO; using System.Threading; namespace WinXPClient { public partial class MainForm : Form { private TcpClient tcpClient; private NetworkStream netStream; private Thread thread; //private string control = "000000"; public MainForm() { InitializeComponent(); } /// <summary> /// 开启连接 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStart_Click(object sender, EventArgs e) { try { if (this.txtIPAddress.Text == "" || this.txtIPAddress.Text == null || this.txtPort.Text == "" || this.txtPort.Text == null) { MessageBox.Show("请先设置地址和端口号"); } else { this.rtbMsg.AppendText("正在请求连接" + this.txtIPAddress.Text + "/r"); tcpClient = new TcpClient(this.txtIPAddress.Text, Convert.ToInt32(this.txtPort.Text)); } } catch { MessageBox.Show("对方没回应,请输入正确地址和端口"); this.rtbMsg.AppendText("连接失败,请重新连接!"+"/r"); } } private void btnLED_Click(object sender, EventArgs e) { this.rtbMsg.AppendText("正在执行LED命令"+"/r"); try { netStream = tcpClient.GetStream(); if (netStream.CanWrite) { string control = "cmdLED"; byte[] by = System.Text.Encoding.ASCII.GetBytes(control.ToCharArray()); netStream.Write(by, 0, by.Length); netStream.Flush(); thread = new Thread(new ThreadStart(receive)); thread.Start(); //thread.Abort(); } } catch (Exception ee) { this.rtbMsg.AppendText(ee.Message + "/r"); MessageBox.Show(ee.Message); } } /// <summary> /// 测试连接 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnTestConnect_Click(object sender, EventArgs e) { this.rtbMsg.AppendText("正在测试连接…"); try { netStream = tcpClient.GetStream(); if (netStream.CanWrite) { string control = "Tesing"; byte[] by = System.Text.Encoding.ASCII.GetBytes(control.ToCharArray()); netStream.Write(by, 0, by.Length); netStream.Flush(); thread = new Thread(new ThreadStart(receive)); thread.Start(); } } catch (Exception ee) { this.rtbMsg.AppendText(ee.Message + "/r"); MessageBox.Show(ee.Message); } } //receive函数,反馈服务器的连接与被控制状态.反馈控制码为3位. public void receive() { byte[] bb = new byte[3]; int i = netStream.Read(bb, 0, 3); //用字符串变量ss表示控制反馈码 string ss = System.Text.Encoding.ASCII.GetString(bb); //con代表连接成功的服务器反馈码 if (ss == "con") { MessageBox.Show("连接成功"); this.rtbMsg.AppendText("连接" + this.txtIPAddress.Text + " 成功。" + "/r"); } //ctr代表控制成功的服务器反馈码 if (ss == "led") { this.rtbMsg.AppendText("控制LED命令执行完毕" + "/r"); //tcpClient.Close(); } //tcpClient.Close(); } private void MainForm_Load(object sender, EventArgs e) { CheckForIllegalCrossThreadCalls = false; } } }
相关文章推荐
- 基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(六)使用domoticz联合arm上的mosquitto实现Android客户端远程控制
- 使用tinymini210开发远程的温度监控系统,实现C#和安卓客户端显示数据和控制
- Android实现远程控制PC(Android[客户端]+Qt[服务器端])
- socket.io,远程控制你的幻灯片
- 不装客户端的远程控制软件DameWare
- 跪求java 程序 swing加socket 做的反向连接远程控制软件,公司要我做我只用反向连接做了一个屏幕截取的,可是带事件控制的做不出报错一大堆,我都卡住了一周了。无奈啊!跪求java反向连接 带事件控制的完整代码!
- 远程计算器控制(包含wxPython,socket)(初级水平)
- Ubuntu 12.04 Remmina 远程桌面客户端 控制另外一台pc机
- Socket远程执行命令并结果回传(客户端)
- Python设置Socket代理及实现远程摄像头控制的例子
- 远程控制客户端界面介绍
- C语言 Socket入门示例2——模拟远程CMD(客户端向服务器发送命令,服务端执行该命令)
- 远程计算器控制(包含wxPython,socket,thread)(初级水平)
- Python设置Socket代理及实现远程摄像头控制的例子
- 基于Socket编程的远程控制PC音乐播放器App(一)
- 基于UltraVNC实现客户端远程控制
- 基于Socket编程的远程控制PC音乐播放器App(二)
- Socket中服务端检测远程客户端链接状态
- C#实现简单远程控制及桌面监控功能(客户端)
- 通过远程连接socket得到客户端的IP和连接端口