Socket.Receive()| Socket.Send()| Socket.BeginXXX | Socket.XXXAsync

时间:2017-01-13 12:50:44

标签: c# sockets

如果我错过了什么,请耐心等待,我刚开始在c#中探索套接字,我遇到了一堆发送/接收数据的方法:

除了正常:Send() / Receive()

还有:xxxAsync() / BeginXxx / xxSendToXxx() / xxReceiveFromXxx()

  • 所有这些方法之间有什么区别?
  • xxxAsync方法只是是否在另一个线程中运行,是不是 如果我在一个新线程中运行它的等效方法呢?
  • 如果我的套接字已连接到a,为什么我会使用SendTo() 指定的endPoint?
  • 这些方法对于面向连接和无连接都是实用的 通信?

1 个答案:

答案 0 :(得分:2)

您似乎知道这些方法的Async版本只是发送/接收数据的非阻塞方法。

对于SendTo和ReceiveFrom,它只是TCP与UDP。

如果您使用的是UDP,请使用SendTo / ReceiveFrom,并且不关心所有数据包是否成功。发送和接收是TCP,并确保所有数据包都能正确到达终点。

至于实际,我读过的所有内容都是你想与客户端/服务器通信,套接字是可靠的和常用的。