2010-08-05 42 views
3

由avira的防病毒检测为后门模型查杀病毒检测听功能后门模型

listen(ListenSocket, SOMAXCONN)

的功能。

如何在没有监听功能的情况下编写小型客户端/服务器应用程序?

有没有办法做到这一点?

回答

2

如果你需要接受连接然后不,你不能这样做,没有调用listen。

如果你可以让你的应用程序只是一个客户端,并有一个服务器上运行其他地方,那么你的客户端可以连接到服务器,该服务器可以作为一个经纪人的其他客户端连接到行动...

我无论如何不会担心这一点。如果你正在运行一台服务器,你希望能够从一台服务器上运行,那么你的文档将不得不解释如何打开防火墙端口,只要添加如何排除应用程序来自它所迷惑的防病毒应用程序。

此外,您的应用程序正在接受来自外部来源的连接,因此防病毒应用程序是正确的以警告用户。你需要教育用户,你的应用程序可以这样做,因为无论你有什么合理的理由,它都会这样做。如果你不想解释给用户的话,恕我直言,你正在写一个后门程序,通过定义)

+0

我不太好,我不能写一个后门:)我正在研究tanenbaum的圣经,我试着写一个小应用程序,指代解释的代码,但avira不喜欢它......不过,您是对的,应用程序会阻止接受连接以解决安全问题。谢谢Len! – Phill 2010-08-05 07:44:23

0

卸载查杀病毒;-)

服务器,侦听传入连接,用户开始连接到服务器。在TCP/IP网络中,服务器通过bind() ing和listen()来实现这一点。

0

Avira中​​充斥着各种各样的容易出错的误报。尝试将监听存储到函数指针并调用它。它可能会工作。

+0

我会尽力,谢谢;) – Phill 2010-08-05 07:46:11

0

如果你正在处理TCP连接,并且你知道谁来自哪里,并且有第三方可以告诉你什么时候连接将被尝试,那么对于双方都有效,对于connect到彼此在同一时间。这样做可以在没有任何一方倾听的情况下协商连接。这不是一个好的解决方案,如果涉及到NAT,则需要更复杂的实现,但如果客户端和服务器位于局域网上,则可能会出现这种情况。