0

我正在运行一个使用 TCP 套接字与服务器通信的客户端程序。当我启动客户端时,它会立即创建与服务器的套接字连接,并且不会关闭连接。

我想知道的是,我可以创建另一个应用程序(独立于客户端/服务器应用程序)在这个已经打开的套接字上发送数据吗?

我知道一个似乎正是这样做的程序。该程序旨在嗅探客户端和服务器之间的数据包,并允许您在连接上发送数据。在发送数据之前,您必须向程序提供客户端进程名称(例如,client.exe)。我相信它正在做的是使用客户端进程作为服务器的一种代理(这不是我想要做的,我希望能够直接连接到服务器)。

4

1 回答 1

0

是的,您可以,在特定情况下 - 前提是您的第二个应用程序与客户端在同一主机上运行,​​并且是 Unix 操作系统。

您需要做的是让您的客户端应用程序和第二个应用程序在它们之间打开一个 Unix 域套接字,然后让客户端应用程序将它为套接字获得的打开文件描述符的副本传递给第二个应用程序。

请参阅有关如何执行此操作的 SO question 敌人详细信息:Portable way to pass file descriptor between different processes

于 2012-08-09T08:35:05.797 回答