Sockets 有没有办法在win32上等待侦听套接字?
我在同一台机器上有一个服务器和客户端程序。服务器是应用程序的一部分,它可以任意启动和停止。当服务器启动时,我希望客户端连接到服务器的侦听套接字。有win32函数等待文件系统更改(ReadDirectoryChangesW)和注册表更改(RegNotifyChangeKeyValue)-网络更改有类似的功能吗?我不希望客户端不断轮询。考虑使用某种形式的Windows同步,例如信号量。客户端可以等待同步原语,服务器可以在同步原语启动时发出信号。没有这样的Win32 API,但是这可以通过使用事件轻松完成。客户端将等待该事件发出信号。服务器将在启动时发出事件信号 您需要使用的相关API是、和 如果您的服务器将作为服务运行,那么对于Vista及更高版本,它将在会话0隔离中运行。这意味着您需要使用名称前缀为“Global\”的事件 您可能有一个很好的理由需要这样做,但在实施之前,请考虑:Sockets 有没有办法在win32上等待侦听套接字?,sockets,winapi,Sockets,Winapi,我在同一台机器上有一个服务器和客户端程序。服务器是应用程序的一部分,它可以任意启动和停止。当服务器启动时,我希望客户端连接到服务器的侦听套接字。有win32函数等待文件系统更改(ReadDirectoryChangesW)和注册表更改(RegNotifyChangeKeyValue)-网络更改有类似的功能吗?我不希望客户端不断轮询。考虑使用某种形式的Windows同步,例如信号量。客户端可以等待同步原语,服务器可以在同步原语启动时发出信号。没有这样的Win32 API,但是这可以通过使用事件轻松
- 你有什么理由需要马上联系吗?我认为这不是问题,因为如果您在客户机中执行某个操作,那么此时您可以建立一个新的服务器连接李>
- 服务器是否比客户端更频繁地启动和停止?您可以切换侦听/连接用户的角色
这样做的好处是,您可以将客户机移动到另一台机器上,而不会出现任何问题(而且由于客户机到服务器的主连接已经是套接字,因此很遗憾,仅仅因为您选择了本地IPC方法进行初始引导,就将客户机和服务器绑定到同一台机器上) 它有点像日志查看器,所以理想情况下,它会尽快运行。我的愿望与其说是立即联系,不如说是不必担心多久投票一次。