C#异步Socket我用异步Socket实现连接,调用BeginAccept,然后在实接收事件中,调用EndAccept,然后用BeginReceive来接收数据.但是到BeginReceive就会报错,提示是当前没有建立连接,也就是说当前(接收事件)

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 04:22:34
C#异步Socket我用异步Socket实现连接,调用BeginAccept,然后在实接收事件中,调用EndAccept,然后用BeginReceive来接收数据.但是到BeginReceive就会报错,提示是当前没有建立连接,也就是说当前(接收事件)

C#异步Socket我用异步Socket实现连接,调用BeginAccept,然后在实接收事件中,调用EndAccept,然后用BeginReceive来接收数据.但是到BeginReceive就会报错,提示是当前没有建立连接,也就是说当前(接收事件)
C#异步Socket
我用异步Socket实现连接,调用BeginAccept,然后在实接收事件中,调用EndAccept,然后用BeginReceive来接收数据.但是到BeginReceive就会报错,提示是当前没有建立连接,也就是说当前(接收事件)异步的Accept操作还未完成,请问如何在异步操作完成之后再触发事件,或者有什么其它的解决方案吗

C#异步Socket我用异步Socket实现连接,调用BeginAccept,然后在实接收事件中,调用EndAccept,然后用BeginReceive来接收数据.但是到BeginReceive就会报错,提示是当前没有建立连接,也就是说当前(接收事件)
贴代码……否则我只能猜了……所以一下为我猜测的原因,
1)你的代码不会是这样写的吧.
BeginAccept(……);
BeginReceive(……);
2)在BeginAccept的回调函数中,执行EndAccept,这个函数返回了另一个已连接Socket,而原用来异步接收连接的Socket扔处在未连接的状态.也就是说,所谓用来Accept的Socket,其实相当于一个监听器(TcpLinstenrer),并不是真正用来连接的Socket.