C#之TCP消息的发送和接受
2011-04-02 16:02
232 查看
这段时间在为下个项目作准备,之前也做过类似的项目,瓦斯的预警监控系统,当时为了同步UI和SQL用了Socket编程,当时根据实际情况选择了UDP方式的消息发送和接受机制,这种广播发送消息的形式虽然很快捷但是同时也存在丢包的问题,当然在局域网内这种情况还是很少出现的,所以在之前的项目中一直也没出现问题。其实用了UDP很自然的就会想在以后的项目中会不会使用TCP来实现此类功能。TCP是点到点的转送方式,通常我们也知道TCP/IP协议的三次握手、四次挥手,虽然感觉比UDP麻烦很多,不过这种方式却可以确保信息的安全到达,UDP只管把消息发出,不管有没有接受到,而TCP是把消息发出去之后等待回应,如果没有发送成功可以再次发送,确保每次发送的成功率,在追求时效性的时候应该选择UDP。总之他们各有千秋。(哈哈哈哈,感觉挺废话的!!)
研究了一下TCP,然后呢,感觉方便以后的使用,就把TCP的一些方法和类封装成了DLL,可以在以后的项目中直接去使用,需要新的需求可以不断的去完善DLL的版本,算是长久使用之计吧。
在这个DLL里面定义TCP服务器端的数据的异步接受和发送,同样客户端也是包括了数据的接受和发送,同时定义了接受数据时需要触发的事件。可能还有很多地方需要完善吧,这个可能等到到用到项目中时候才知道需要完善哪些东西。
花了点时间编写和测试,最后做了一个测试案例,哈哈,看看效果的截图吧。
![](http://images.cnblogs.com/cnblogs_com/wangyong/0402.gif)
服务端保存所有连接到他的客户端,然后可以对针对每个客户端进行发送数据,在测试案例中就是在自己的电脑上测试的,没有用别的电脑,其实还可以在服务器的UI中下个Combox,显示所以的客户端的IP,然后选中一个,进行定点的数据发送。呵呵。。。。
研究了一下TCP,然后呢,感觉方便以后的使用,就把TCP的一些方法和类封装成了DLL,可以在以后的项目中直接去使用,需要新的需求可以不断的去完善DLL的版本,算是长久使用之计吧。
在这个DLL里面定义TCP服务器端的数据的异步接受和发送,同样客户端也是包括了数据的接受和发送,同时定义了接受数据时需要触发的事件。可能还有很多地方需要完善吧,这个可能等到到用到项目中时候才知道需要完善哪些东西。
花了点时间编写和测试,最后做了一个测试案例,哈哈,看看效果的截图吧。
![](http://images.cnblogs.com/cnblogs_com/wangyong/0402.gif)
服务端保存所有连接到他的客户端,然后可以对针对每个客户端进行发送数据,在测试案例中就是在自己的电脑上测试的,没有用别的电脑,其实还可以在服务器的UI中下个Combox,显示所以的客户端的IP,然后选中一个,进行定点的数据发送。呵呵。。。。
相关文章推荐
- C# TCP服务端 可以接收其他语言或平台发送的TCP消息
- C# tcp发送消息和传输文件
- C#TCPClient应用-一个简单的消息发送和接收
- qt写的一个简单的tcp服务器程序,可以接受消息发送数据
- C# tcp发送消息和传输文件
- C#TCPClient应用-一个简单的消息发送和接收 (转)
- C#TCPClient应用-一个简单的消息发送和接收
- C#.net同步异步SOCKET通讯和多线程总结(5)tcp发送和接受的代码
- C# tcp发送消息和传输文件
- C#TCPClient应用-一个简单的消息发送和接收
- C# TCP服务端 可以接收其他语言或平台发送的TCP消息
- C# 微信公众平台开发(3)-- 接受/发送消息
- C#用UDP同步发送数据和接受数据
- 用c#在应用程式间发送消息
- C#可调用API接口来获取窗口句柄,发送消息控制其余程序窗体大小
- ActiveMQ (二) 使用Queue或者Topic发送/接受消息
- C#发送消息功能的内涵方法:
- 应用程序间发送消息 c# SendMessage WM_COPYDATA
- 求asp.net(C#)发送与接受程序
- C#使用UdpClient发送广播消息介绍