异步编写Socket服务端
注意事项与三中的异步客户端类似,不过新加了几点,主要是流程控制方面。
1.Listen里的数字为pending的连接数,而不能控制能够连接的数量。因为是异步的,所以一有连接马上调用回调函数,在End操作里将pending中取出,所以即使listen给出的数字很小,只要End操作足够及时,能够同时处理很多连接。
2.通过一个循环控制不断地BeginAccept,使用了信号对象,使当一个Begin被End的时候,马上会有一个新的Begin供之后的连接使用。
3.在BeginReceive中,每当客户端有数据发送过来的时候,就会触发readCallBack回调函数,用一个End处理它,需要注意的是,当客户端关闭的时候,也会触发一次回调,但是此时数据为0