Visual Studio 2015(C#)编写实现TCP调试助手(服务端+客户端一体)-新手
近期在做项目的时候运用到了WIFI模块,想着自己捣鼓捣鼓弄个上位机调试调试。初次接触,长达3天的修修改改终于完成,实现代码比较杂乱,但是可以正常使用。不足之处,还望指正!
话不多说,先看效果:
该助手的话虽说集成了客户端与服务器,但是运行也是分开的。每次只能使用1个功能。当作为服务端时,可随客户端自动断开连接。
以下为具体实现代码:
客户端:
serverIP = IPAddress.Parse(txBip.Text);try{serverFullAddr = new IPEndPoint(serverIP, int.Parse(txBport.Text));//设置IP,端口sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);sock.Connect(serverFullAddr);btcon.Enabled = false;button1.Enabled = false;lab_err.Text = "连接成功";btdiscon.Enabled = true;}catch (Exception ee){MessageBox.Show(ee.Message);}
byte[] byteSend = System.Text.Encoding.Default.GetBytes(this.textBox3.Text);try{lab_err.Text = "发送成功";sock.Send(byteSend);Thread.Sleep(300);}catch (Exception ex){MessageBox.Show(ex.Message);}
代码里可能有一些修改残余在里面,我这边也就是做个调试使用,我自己就懒得再修修改改了,能实现功能就OK了。不影响实际使用。
服务器端:
这边服务器端采用了多线程,listen。
byte[] message = new byte[1024];string mess = "";clientIP = IPAddress.Parse(textBox2.Text);clientFullAddr = new IPEndPoint(clientIP, int.Parse(textBox4.Text));//设置IP,端口sock_server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);sock_server.Bind(clientFullAddr);sock_server.Listen(2);try{socket_server = sock_server.Accept();}catch (Exception ee){if (ee.Message != "一个封锁操作被对 WSACancelBlockingCall 的调用中断。"){MessageBox.Show(ee.Message);}Invoke(new ServerRecClose(ClientClose));return;}while (true){try{int bytes = socket_server.Receive(message);mess = Encoding.Default.GetString(message, 0, bytes);if (mess != "") {Invoke(new PrintRecvMssgDelegate(PrintRecvMssg), mess);}else{Invoke(new ServerRecClose(ClientClose));return;}}catch (Exception ee){if (ee.Message != "一个封锁操作被对 WSACancelBlockingCall 的调用中断。") {MessageBox.Show(ee.Message);}}}
private delegate void PrintRecvMssgDelegate(string s);private void PrintRecvMssg(string info){textBox1.Text += string.Format("{0}\r\n", info);}private delegate void ServerRecClose();private void ClientClose(){sock_server.Close();btcon.Enabled = true;button1.Enabled = true;button2.Enabled = false;label5.Text = "断开连接";}
以上就是全部了,本人也是新手,所以就不多说什么教程之类的了。
有需要源码的可以私聊留下邮箱或者留言邮箱
走过路过,望赏个一键三连~
Visual Studio 2015(C#)编写实现TCP调试助手(服务端+客户端一体)-新手相关推荐
- Visual Studio 2015开发Android App启动调试始终无法完成应用部署的解决方案
创建一个Android App项目后,直接启动调试发现Visual Studio Emulator for Android已成功运行,但应用始终处于Build中(等待时间超过1小时),并未如预期通过a ...
- UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)
目录 一.使用UE4建立TCP客户端 二.使用网络调试助手建立服务端 三.基于网络调试助手的服务端与UE客户端通信 四.基于python的TCP服务端与UE客户端通信 一.使用UE4建立TCP客户端 ...
- 有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代...
有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代 太阳火神的美丽人生 (http://blog.csdn.n ...
- Visual Studio 2015开发Android App问题集锦
Visual Studio 2015开发Android App 启动调试始终无法完成应用部署的解决方案 创建一个Android App项目后,直接启动调试发现Visual Studio Emulato ...
- VS2015--win32project配置的一些想法之在 Visual Studio 2015 中进行调试的同一时候分析性能...
出处: https://msdn.microsoft.com/zh-cn/magazine/dn973013(en-us).aspx 很多开发商花了绝大多数时间获取应用程序才干正常发挥作用.更少的时间 ...
- vs远程编译linux程序,使用Visual Studio 2015远程调试Linux程序
##安装 Visual Studio 2015 安装时注意将跨平台移动开发->Visual C++移动开发->Viaual C++ Android 开发的选项勾上 ##安装PUTTY Vi ...
- 无法附加到进程。Visual Studio 2015 远程调试器(MSVSMON.EXE)似乎没有在远程计算机上运行。
将程序发布到自己本机IIS里,我们进行内部测试,难免会出现bug,可以通过vs进行调试. 步骤:"调试">="附加到进程",如下界面: 找到进程名称为w3 ...
- 【转载】Visual Studio 2015 for Linux更好地支持Linux下的开发
原文:Visual Studio 2015 for Linux更好地支持Linux下的开发 英文原文:Targeting Linux Made Easier in Visual Studio 2015 ...
- Visual Studio 2015 for Linux更好地支持Linux下的开发
Visual C++ for Linux扩展使Visual Studio 2015的用户可以在VS2015中编写C或者C++代码,并将代码部署到基于Linux的系统中去编译和调试.源代码和项目文件通过 ...
- 通过Visual Studio为Linux编写C++代码
Build 2016大会上Microsoft首次公布的Visual Studio 2015扩展提供了在VS2015中编写C++代码,随后通过Linux/UNIX计算机进行编译和执行的能力.这种想法非常 ...
最新文章
- centos下LAMP之源码编译安装httpd
- Yii2 解决2006 MySQL server has gone away问题
- python经典案例-20个Python练手经典案例,能全做对的人确实很少!
- [cpp] 字符数组,字符指针,sizeof,strlen总结
- 曹国伟:看准微博做大布局 哪怕革自己的命
- 【渝粤题库】陕西师范大学400013 组织行为学 作业(专升本)
- android音频杂音问题_Android 音视频去回声、降噪(Android音频采集及回音消除)(转)...
- [转] FFmpeg常用基本命令
- OpenCV-图像处理(05、图像混合)
- excel保存快捷键_这应该算是Windows电脑中最强的几组快捷键!
- JAVA宠物寄养管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
- 百度离线地图API v3.0开发解决方案
- 14.SQL必知必会第15课 插入数据(数据库的备份insert into ... values表的复制操作)
- Android 2.2模拟器调出中文输入法
- scrapy爬取京东图书的数据
- 杰理之VM 概述【篇】
- 实验三+163+张玉洁
- RAC 和 Oracle Clusterware 最佳实践和初学者指南 (Solaris) (文档 ID 1526517.1)
- 通达OA web页面与精灵显示内容更新后不一致的问题
- 【高项】各章节知识点概括