Sql server 如何在windows中查找进程打开的套接字FD

Sql server 如何在windows中查找进程打开的套接字FD,sql-server,windows,sockets,keep-alive,windows-socket-api,Sql Server,Windows,Sockets,Keep Alive,Windows Socket Api,我有一个在windows中运行的客户端进程(win 7/win 2008服务器)。任务是为它打开的一个套接字启用keepalive,以便与服务器连接。 为了建立这个连接,我使用了WindowsAPI(连接到MSSQL服务器),从中我无法检索它创建的套接字fd 1)如何检索Windows进程打开的所有套接字FDS(非Python方法,二进制是基于C++的)< /P> 2) 有没有办法从windows API SQLAllocHandle或SQLDriverConnection返回的句柄中检索套接

我有一个在windows中运行的客户端进程(win 7/win 2008服务器)。任务是为它打开的一个套接字启用keepalive,以便与服务器连接。 为了建立这个连接,我使用了WindowsAPI(连接到MSSQL服务器),从中我无法检索它创建的套接字fd

1)如何检索Windows进程打开的所有套接字FDS(非Python方法,二进制是基于C++的)< /P> 2) 有没有办法从windows API SQLAllocHandle或SQLDriverConnection返回的句柄中检索套接字fd

谢谢

您不能(AFAIK)也不应该(不受支持)尝试在客户端上修改此选项。SQL Server有一个服务器端配置设置,用于控制以下内容:

保持活力

此参数(以毫秒为单位)控制TCP通过发送KEEPALIVE数据包来验证空闲连接是否完好的频率。默认值为30000毫秒


谢谢。我知道服务器端的这个参数,但有兴趣在客户端启用。“不支持”是什么意思?在建立连接后,windows不支持在套接字上修改keepalive?不支持直接修改SQL Server ODBC驱动程序使用的套接字,即使您可以找到句柄。