我正在运行一个使用TCP套接字与服务器通信的客户端程序。当我启动客户端时,它会立即与服务器建立套接字连接,并且不会关闭连接。
我想知道的是,我可以创建另一个在已打开的套接字上发送数据的应用程序(独立于客户端/服务器应用程序)吗?
我知道一个程序似乎正是这样做的。该程序旨在嗅探客户端和服务器之间的数据包,并允许您在连接上发送数据。 在发送数据之前,必须为程序提供客户端进程名称(例如client.exe)。我相信它正在做的是将客户端进程用作服务器的一种代理(这不是我想做的,我希望能够直接连接到服务器)。
答案 0 :(得分:0)
是的,你可以,特定的情况 - 只要你的第二个应用程序在与客户端相同的主机上运行,那就是Unix操作系统。
您需要做的是让您的客户端应用程序和第二个应用程序在它们之间打开一个Unix域套接字,然后让客户端应用程序将它为套接字获取的打开文件描述符的副本传递给第二个应用程序。 / p>
有关如何执行此操作的详细信息,请参阅此问题:Portable way to pass file descriptor between different processes