用C#做TCP传数据的程序,一般用同步方式还是异步方式????

lw8122 2004-11-08 04:28:42
打算写一个服务程序,响应客户端请求的数据,协议用TCP。

对于这种程序,大家一般来说,

是使用同步方法: Send/Receive

还是使用异步方法:BeginSend/EndSend/BeginReceive/EndReceive

有没有做过的朋友,给点建议????? 先谢过了
...全文
684 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
abctop321 2004-11-22
  • 打赏
  • 举报
回复
那我问一下
大型游戏里面一般都是用什么,多线程同步还是多线程异步?
lw8122 2004-11-22
  • 打赏
  • 举报
回复
问一下,哪里可以下载到演示程序,就是编译后就可以运行的那种。

谢谢
速马 2004-11-18
  • 打赏
  • 举报
回复
// 问一下,异步和同步,是网络传输有区别,还是线程控制有区别
网络传输没得任何区别

// 如果是线程控制有区别,那么,同步从理论上来说也可以使用通过优化代码,把线程控制得非常好,以达到异步的速度。
同意,但是往往得不偿失,并且异步的方式都是从线程池建立线程,比普通的多线程方式效率要高的多

// 如果通信的两端,一端用同步,一端用异步,是否也能进行通信
当然可以

// 哪里可以下载到类似程序的完整演示代码
MSDN
Could 2004-11-18
  • 打赏
  • 举报
回复
同步,效率高。
自己使用多线程就行了。
lw8122 2004-11-18
  • 打赏
  • 举报
回复
回尽头:

问一下,异步和同步,是网络传输有区别,还是线程控制有区别????

如果是网络传输有区别,那么按照你的说法,就是异步比同步在网络传输方面效率高。

如果是线程控制有区别,那么,同步从理论上来说也可以使用通过优化代码,把线程控制得非常好,以达到异步的速度。

还有,如果通信的两端,一端用同步,一端用异步,是否也能进行通信?????

再问一下,哪里可以下载到类似程序的完整演示代码????? 谢谢了
xMars 2004-11-16
  • 打赏
  • 举报
回复
最好是异步
herony420 2004-11-16
  • 打赏
  • 举报
回复
如果客户端比较多,并且传输的数据比较多的话,建议使用异步方式,这是因为:同步(单线程)的收发是阻塞式的,如果数据量较大,或者网路状况不好的话会造成响应的缓慢,由于TCP协议是面向连接的,在协议底层如果发送出错会不断重发,有时会造成恶性循环。如果采用多线程的同步方法,即每个客户端一个线程,这样可能会有所改善,但是,问题是如果客户端好多的话,那有多少线程就可想而知了。
异步方法是非阻塞的,这样,两端只要连接,客户端虽然很多,但是数据的接收不是阻塞的,如果每次接收的数据很小的话,出错的几率会大大减少,并且处理起来的回调还是很方便的。可以较少的考虑线程的同步之类,并且响应速度较快,当然传输速度看网络状况了
missRainbowAgain 2004-11-16
  • 打赏
  • 举报
回复
学习
lw8122 2004-11-16
  • 打赏
  • 举报
回复
自顶
ffb 2004-11-15
  • 打赏
  • 举报
回复
研究
lw8122 2004-11-15
  • 打赏
  • 举报
回复
自己顶,希望大虾能再多给一点参考意见
歪歪 2004-11-11
  • 打赏
  • 举报
回复
帮顶
lw8122 2004-11-11
  • 打赏
  • 举报
回复
自己顶
csdnshao 2004-11-10
  • 打赏
  • 举报
回复
帮你顶
lw8122 2004-11-10
  • 打赏
  • 举报
回复
目前正在看文档,自己顶一下,望大虾指教
xiaoslong 2004-11-09
  • 打赏
  • 举报
回复
帮你顶
lw8122 2004-11-09
  • 打赏
  • 举报
回复
有没有这方面的源代码,可以参考一下的???
felixwoo 2004-11-08
  • 打赏
  • 举报
回复
如果是client比较多的话,服务器端应该用动态多线程。在每个单独的线程中还是使用同步较好,因为在这个线程中只做这一件事,所以没有必要使用异步。
kangxidadi 2004-11-08
  • 打赏
  • 举报
回复
同不容易死掉?
速马 2004-11-08
  • 打赏
  • 举报
回复
同步除了容易死掉之外没啥缺点~
加载更多回复(7)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧