当调用socket的BeginConnect方法时发生了什么?什么情况下需要使用BeginConnect? |
|
你想接收数据,就要先链接,等待链接成功,再接收
|
|
15分 |
所有的异步方法(beginconnect,beginaccept,beginrecieve),都是将操作添加进队列里等待系统线程池调用
可能会使用当前线程在空闲时调用,也可能开启另一个线程执行,总之它区别于”同步阻塞”,并不等待执行完毕就继续执行后续代码了 |
多谢回答。请问是否当调用Beginconnect时就向远程主机发送了连接请求,还是执行完Beginconnect以后,由系统在某一时刻去向远程主机发送连接请求?如果是后者,那么系统在什么时候发送这个连接请求,回调函数又是什么时候被系统调用的呢?EndConnect被调用就能说明连接成功了吗? |
|
5分 |
BeginXXXX,只是分配分配线程,EndXXXX才会真正执行相关任务。
|
Begin*** 这样的方法都是异步方法,区别于同步方法,这种方法不会阻塞当前线程,可以调用 End*** 去同步结束这个方法,也可以通过注册事件来得到方法完成的通知。
|