W
waterflow
Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用clientsocket进行通信时碰到一些问题:
程序要实现的功能要求:
1:有消息立即发送出去(到广域网对方)
2:发送完后处于读取对方返回信息状态并进行处理
当设置clientsocket的clienttype为ctblocking时,使用线程来发送信息
信息可以立即发送出去,但是读取对方信息有问题(我实在onread事件中读取信息)
onread事件根本不发生,同时我把程序关闭,对方却还有连结存在(这样导致几次后就到达
对方连结次数的上限)
当设置clientsocket的clienttype为ctNonblocking时,直接利用sendbuf来发送,但是
却不能立即发送,文档上说该函数只是向winsock dll发送消息,但是onread立即发生,且
能接受信息,当我把程序关闭后,好像是发送很多次后,经过10多分钟,所有的消息批量
发送出去,是不是在winsock dll中设置了包的大小,只有到一定程度后才真正发送,如何
解决
还是我根本就用错了空间
程序要实现的功能要求:
1:有消息立即发送出去(到广域网对方)
2:发送完后处于读取对方返回信息状态并进行处理
当设置clientsocket的clienttype为ctblocking时,使用线程来发送信息
信息可以立即发送出去,但是读取对方信息有问题(我实在onread事件中读取信息)
onread事件根本不发生,同时我把程序关闭,对方却还有连结存在(这样导致几次后就到达
对方连结次数的上限)
当设置clientsocket的clienttype为ctNonblocking时,直接利用sendbuf来发送,但是
却不能立即发送,文档上说该函数只是向winsock dll发送消息,但是onread立即发生,且
能接受信息,当我把程序关闭后,好像是发送很多次后,经过10多分钟,所有的消息批量
发送出去,是不是在winsock dll中设置了包的大小,只有到一定程度后才真正发送,如何
解决
还是我根本就用错了空间