〔初学Socket〕异步Socket和同步Socket的区别是什么??

楼主GoatFans(千年虫子精)2005-11-04 14:47:13 在 .NET技术 / C# 提问

最近在学习Socket,但始终搞不明白异步和同步到底是怎么一回事  
   
  什么是同步,什么是异步?   谁更好一些,还是适用于不同的数据传输要求?    
   
  如果是谁更好一些,那么是谁好呢?好在那里?  
   
  如果是适用于不同的数据传输要求,那各适用什么样的数据传输?   为什么?  
   
  能给提供一本专门学习Socket技术的书吗?   电子书最佳....  
   
  谢谢!!!!! 问题点数:50、回复次数:9Top

1 楼hzw66(超越理想)回复于 2005-11-04 14:58:21 得分 10

简单说:  
  同步就是一直等着返回  
  异步就是不管是否返回,先做其它处理  
  根据情况自己选择  
  大多用异步方式Top

2 楼YAOHE(吆喝)回复于 2005-11-04 15:01:23 得分 2

楼上的说得对,通讯用同步还是异步,得看你要什么样的结果Top

3 楼poboy(笑笑生)回复于 2005-11-04 15:12:26 得分 10

同步时   达到     这条代码   。  
  tcpclient.receive();  
  时   ,不会向下执行   ,  
  是不见不散的那种痴情种   ,  
   
  tcpclient.beginreceive();  
  则属于那种   一切随缘     ,有当然好,没有也无所谓,  
  那种不会为谁死去活来的那种   。。  
  呵呵,像我Top

4 楼GoatFans(千年虫子精)回复于 2005-11-04 15:23:02 得分 0

楼上的回答的很酷....呵呵  
   
  那能推荐一本很不错的关于Socket的学习资料或Blog吗?谢谢Top

5 楼stonegoldaustin(特醇中南海)回复于 2005-11-04 16:02:14 得分 10

所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。  
   
  异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。  
   
  并不是说谁好谁不好,只是同步的机制不适合在正式应用的项目当中(但自己测试还是可以的)  
   
  想学习SOCKET的话,建议从C/C++开始,对各种底层函数有个大概的了解,C#已经封装了SOCKET函数,不利于你了解整个工作机制Top

6 楼o1o(两蛋一枪)回复于 2005-11-04 16:36:52 得分 2

可以改学通信呀,计算机跟通信密切相关的。Top

7 楼poboy(笑笑生)回复于 2005-11-04 16:45:05 得分 2

我的socket是看图书馆的书   ,如果对你不现实的话   ,  
   
  最好的资料其实就是   。net的文档Top

8 楼poboy(笑笑生)回复于 2005-11-04 16:46:24 得分 3

这些站点  
  国内完全免费的电子书籍下载    
  http://www.vvsoft.net/vvbksd/index.asp    
   
  http://download.chinaitlab.com/sort/2_1.htm    
   
  http://book.httpcn.com/    
   
  http://www.chinesebook.com.cn/bjbookfair/index.asp    
   
  http://www.eshunet.com/    
   
  http://www.manyi100.com/    
   
  http://www.52ebook.com/    
   
  http://www.pcbookcn.com/    
   
  http://www.itebook.net/download.asp    
   
  http://www.ebookcn.net    
   
  http://www.chinaz.com/DownLoad/L/8_Lastuptime_Desc_1.asp    
   
  http://soft.winzheng.com/SoftList/Catalog_11_SoftTime_Desc_1.htm    
   
  http://www.gd00.com/SoftList/Catalog_7_SoftTime_Desc_1.html    
   
  http://soft.0zones.com/SoftList/Catalog_10_SoftTime_Desc_1.htmlTop

9 楼Gerryjiang(下一站)回复于 2005-11-09 15:25:06 得分 11

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconNon-blockingServerSocketExample.asp  
  去MSDN吧,上面有的例子还不错!Top

你可能对以下的问题也比较感兴趣....