socket编程的同步与阻塞有什么区别?该怎么处理

socket编程的同步与阻塞有什么区别?
还有异步与非阻塞的区别

这些概念有点不明确

------解决方案--------------------
阻塞和非阻塞很好区别,所谓阻塞就是系统调用在IO调用完成时才返回,被阻塞的进程处于睡眠状态。 
非阻塞IO是指不管系统调用是否完成都立刻返回,不会导致进程挂起。服务器的设计中都使用非阻塞IO,用于响应高并发的连接请求。 
这里还有个概念就是IO复用,其实是阻塞到select或poll等这样的系统调用,而不是真正的read或write。 

同步和异步IO:下面是POSIX的定义 
所谓同步IO就是请求进程阻塞到直到IO操作完成时。阻塞IO和非阻塞IO都是同步IO。 
异步IO就是IO操作不会引起请求进程的阻塞。 


------解决方案--------------------
http://www.fawonline.com.cn/blog/?p=233
------解决方案--------------------
同步异步是指客户端是否等待服务器的允许发送指令!!在服务器端实现是否同步!!
阻塞,非阻塞,是指接收数据是否等待!!一般来说,非阻塞通过判断socket的状态来决定是否接收数据!!阻塞是一直等待数据的到来,可以选择超时时长!!
------解决方案--------------------
同步和阻塞是一样的概念
异步和非阻塞可以理解为一样的概念,只不过异步的某型可能不同,反正他们的结果是一样的,调用即返回,需要你查询或者通知你结果
------解决方案--------------------
阻塞是指的单一函数的操作模式,对send、connect等等这样的比较耗时或者是效率不定的函数,一般都分阻塞和非阻塞调用。

同步和异步指的一种函数调度的方式。例如一个函数说是同步调用方式,可以理解成就是单进程调度模式几乎就等同于阻塞调用,只有这个函数内部处理完了,才能进行下一步。

异步调度,本质就是多线程,等这个函数内部的事情处理完了就告诉你。所以异步调用,必须存在一个回调接口。或采用消息或采用callback等等。

同步和阻塞几乎就是一样的,但是同步可以表述一种“封装”。而阻塞仅仅适用于函数。
异步和非阻塞有点区别,因为异步一定涉及两个以上的函数(一个是调用函数,一个是回调函数)。而非阻塞同样只适用于函数,因此不涉及回调。