C#异步套接字同时读写?

时间:2014-09-18 13:02:25

标签: c# sockets asynchronous .net-4.5

我正在编写一个tcp聊天服务器,我读了很多关于同步和异步套接字的文章。

我决定使用异步套接字,因为这样我就不必自己管理线程了。(我有什么理由要改变我的意见吗?)

在所有文章中,很好地解释了如何建立连接以及如何发送和接收数据但是如果在没有回复的情况下可能有多个消息要发送,则不会发生什么。

我的问题是,在我想发送内容之前,我必须致电socket.endreceiving()吗?如果我不知道如果我同时收到一条消息会发生什么? (有多个线程,但它仍然是一个底层套接字吗?)

2 个答案:

答案 0 :(得分:3)

找到异步TCP侦听器和客户端https://github.com/vtortola/AynchronousTCPListener

的示例

你可以发送和写入,同时,你不能通过同一个套接字同时从两个线程发送。

答案 1 :(得分:1)

根据我的经验,这不是Socket.SendSocket.SendAsync

的问题