当前位置:编程学习 > C#/ASP.NET >>

C#网络编程:TCP和UDP》?

1、他们有哪些相同点

2、他们有哪些不同点

3、各有什么优势、缺点?

4、学习它们有哪些要注意的问题?

5、怎样更好的掌握它们!

.......

6、谢谢

答案:一:TCP
TCP最重要的一点是它是一个面向连接的协议。两个设备之间一旦已经存在连接,就会形成一个可靠的数据流,保证数据从一个设备准确地移送到另一个设备。TCP不需要考虑数据的丢失和错位,但是需要考虑一个重要问题:缓冲器。
缓冲器:
发送时:在接到来自接收端的ACK之前,将所有发送的数据存放在一个缓冲器中。
接收时:将所有数据存放在缓冲器中以保证数据按顺序接收。
缓冲器的存在导致一个问题,即:不能保留数据之间的界线。
解决方案:
1.创建一个协议,要求从主机发出的消息都是一一对应的。(通常采用此种方法)
2.设计一个数据消息标记系统,辨认数据流中数据消息的边界。


2.UDP:
UDP的目的:解决TCP中无数据边界的问题。
UDP中不需要使用缓冲器,而是将消息独立地作为包发送。并且保留消息边界。
但是,UDP中不保证数据的传递,可能出现丢包现象,因此应用程序需要处理丢包问题。
解决方案:命令/响应方法。
步骤:1.发送数据到远程设备。
2.启动一个计时器,设置一个预定的时间周期。
3.等待远程设备的响应。收到响应时停止计时器计时,并继续用户的程序。
4.如果还没收到响应计时器就到时了,返回重复步骤1。如果重复多次后仍然没有响应,则认为用户不能与远程主机通信。

虽然UDP在发送消息时对于消息边界的处理稍微容易一些,但是用户需要处理丢包问题(检查丢失的数据包),所以UDP比TCP要更加复杂。

最主要的

tcp不能在客户端没有连接的时候通信

UDP就可以~

这个理由可以让我们忽视所有UDP的缺点

上一个:求C++和C#的详细比较
下一个:C# winform 如何拖动控件到窗体

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,