我正在使用.Net,我正在寻求创建服务并在TCP或UDP之间寻找。服务应该支持多个客户端,所以我使它与.Net SocketAsyncEventArgs异步,因为我发现它具有更好的性能和更少的内存消耗。我知道TCP的速度比UPD慢,但我想知道您对这两种方案之间更快的方法的看法
1)使用TCP和SocketAsyncEventArgs,每个客户端都将连接,并且一旦服务接受连接,基本上每个客户端都有一个端点开始发送和接收,因此在打开(接受)连接时可以发送多个消息。基本上每个客户端都有自己的连接,并且可以进行双向通信
2)每个客户端都将UDP数据报发送到同一UDP服务器端点,因此基本上我为所有客户端提供了一个端点,以发送所有消息,然后对其进行处理并将数据报分别发送回每个端点。
也许我错过了TCP / UPD的概念,但基本上的问题是,一旦我为每个客户端建立了开放的TCP连接,当所有客户端共享相同的初始UDP端点时,来回发送UDP消息是否较慢? / p>
答案 0 :(得分:0)
您首先要考虑的不是性能。 TCP是可靠的协议,而UDP不是。如果实现UDP,则需要实现其他逻辑以确保消息到达目的地。
UDP在几种有限的情况下很有意义:(1)当您要广播消息(TCP无法广播)或(2)当您真的不在乎100%的消息是否到达目的地时