请问BCB的Socket组件在数据成功发送后会触发类似MFC中OnSend事件吗?
对于Clientsocket的OnWrite也不是很明白,BCB说 should write information o the socket connection时发生,但只是在连接成功时调用了一次,发送数据后就不再调用了.
发送成功就没有事件触发了吗?
[解决办法]
TCustomWinSocket::SendBuf
可以在一个Windows Socket 对象的OnSocketEvent事件或者一个socket组件的OnWrite , OnClientWrite事件中调用这个方法向socket连接中写入数据.
对于非阻塞sockets,数据被发送到winsock dll的内部缓存中,如果winsock能接受额外的数据,SendBuf会立即返回,如果winsock不能接受,SendBuf会返回-1,在这种情况下,需要延时让winsock有机会将已经在队列里面的数据发出去.
对于阻塞sockets,返回的是实际写入socket连接的字节数.