首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以指定允许哪个IP地址和端口号向我发送连接请求?

是否可以指定允许哪个IP地址和端口号向我发送连接请求?
EN

Stack Overflow用户
提问于 2016-07-03 03:58:15
回答 4查看 180关注 0票数 0

我已经创建了一个服务器套接字,并指定了要侦听的端口12345,并通过将INADDR_ANY传递给bind()来允许对它的连接请求通过系统上任何可用的IP地址。以下是服务器套接字的值:

我的问题是,我能否指定允许哪个IP地址和端口号向我发送连接请求(即上图中的外部地址中的值)?

EN

回答 4

Stack Overflow用户

发布于 2016-07-03 05:09:39

您不能在打开侦听套接字时指定“一劳永逸”,但如果单个连接不是从您想要的IP发起的,则可以拒绝它们。WSAAccept function允许您指定一个条件函数,该函数决定是否应该接受连接。

这本身是有效的,但我不确定以这种方式拒绝连接是否等同于接受并立即关闭它,也许您还需要设置套接字选项SO_CONDITIONAL_ACCEPT,以便在连接打开之前拒绝它。

See also this Q/A

票数 1
EN

Stack Overflow用户

发布于 2018-12-11 15:55:23

有两种主要情况用于匹配本地被动打开和外部主动打开中的套接字。在第一种情况下,本地被动打开完全指定了外部套接字。在这种情况下,匹配必须是精确的。在第二种情况下,本地被动打开未指定外部套接字。在这种情况下,只要本地套接字匹配,任何外来套接字都是可接受的。其他可能包括部分受限的匹配。

这是对RFC793的介绍。在实际实现中,如@alain,Windows系统可以使用SO_CONDITIONAL_ACCEPT,Linux系统没有,需要调用accept后再判断是否允许IP和Port,不允许直接断开连接。

票数 1
EN

Stack Overflow用户

发布于 2016-07-03 04:12:34

是的你可以。这就是为什么会有防火墙。您可以配置某些规则,如只允许某个ip地址连接。Windows有一个集成的防火墙,您的路由器也配备了。

您不能在程序中指定这些限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38163988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档