c#Tcp和套接字之间的区别?

时间:2013-08-02 20:50:38

标签: c# sockets tcp

这显然是一个非常新手的问题,甚至可能没有意义,但最近我一直在研究服务器和客户端应用程序的基础知识,并且已经看过Socket和TCP方法。简而言之,这两种方法有什么区别?

1 个答案:

答案 0 :(得分:7)

套接字是一个API(或者更准确地说,是一个库),TCP是一种协议。

套接字用于通过UDP或TCP等协议发送数据。两者都运行在IP(互联网协议)之上。

所以套接字是你编写程序的。 TCP是两台计算机用于通过网络相互通信的语言。

您会看到一些API中包含TCP或其中包含UDP的API,这些API专门用于使用TCP和UDP协议。 TCP是“面向连接”而UDP是“无连接”。这意味着TCP保证数据包将以正确的顺序到达,并且如果数据包丢失,则会尝试重新发送数据包。 UDP不会做那些事情。

因此,指定TCP和UDP的API使用套接字来创建这些连接。

还有一些Socket API和api以Tcp开头命名,就像TcpListener一样。如果这就是你所说的,正如一些人似乎相信的那样,那么Tcp类只是更高级别的抽象,它包含了低级别的Socket类,以便更容易使用。

相关问题