在c#中socket异步阻塞通迅与socket同步有什么区别,分别用在什么场合?不明白的是异步加上阻塞为何不直接用同步呢,为什么还要用异步呢?请教高手。

解决方案 »

  1.   

    异步和同步概念针对的是函数调用者。
    socket异步:
    函数立即返回,通过事件或是信号通知调用者。
    socket同步:
    函数没有执行完不返回,线程被挂起。阻塞与非阻塞针对socket接收数据:
    阻塞:
    没有收完数据函数不返回,线程也被挂起,直到接收完数据。
    非阻塞:
    函数立即返回,通过select通知调用者。异步阻塞:
    由另外一个线程(被调用线程)里负责接收/发送数据,接收数据时候必须等待socket栈满了才返回,然后通过事件通知调用线程。详细请见:
    http://www.cnblogs.com/codingX/archive/2010/12/31/1923081.html