- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Ubuntu 中使用套接字编程 C++ 编写服务器客户端程序。
这是连接客户端和服务器的代码。
void setParent(string name,int parentPort){
struct addrinfo hints, *serverInfo , *rp;
int errcode;
char addrstr[100];
void *ptr;
int sfd;
std::string parentPortStr = std::to_string(parentPort);
memset (&hints, 0, sizeof (hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = 0;
hints.ai_flags = AI_PASSIVE;
cerr << name << " " << parentPortStr << endl;
errcode = getaddrinfo (name.c_str() , parentPortStr.c_str(), &hints, &serverInfo);
if (errcode != 0)
{
cerr << "getaddrinfo has error" << endl;
return;
}
for (rp = serverInfo; rp != NULL; rp = rp->ai_next) {
cerr << "Trying next api " << rp->ai_family << " " << rp->ai_socktype << " " << rp ->ai_protocol << endl;
sfd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
if (sfd == -1)
continue;
if (connect(sfd, rp->ai_addr, rp->ai_addrlen) != -1){
int enabled = 1;
setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &enabled, sizeof(int));
break;
}
close(sfd);
}
freeaddrinfo(serverInfo);
if(sfd == -1){
cerr << "cannot connect to father" << endl;
return;
}
cerr << "connected to father successfuly. socket: " << sfd << endl;
fatherSocket = sfd;
return;
}
当我这样调用这段代码时:setParent("localhost", "300");它将始终接受连接。是否有任何程序监听端口 7300 并不重要。
这是调试输出:
setparent localhost 300
localhost 7300
Trying next api 2 1 6
connected to father successfully. socket: 5
而且我更改端口也没关系。它总是尝试使用 ai_family: 2, ai_socktype: 1, ai_protocol: 6 的 api 并将成功连接到它。
这是“sudo netstat -tulpn”的结果:
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1163/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 4814/cupsd
tcp6 0 0 ::1:631 :::* LISTEN 4814/cupsd
udp 0 0 0.0.0.0:45464 0.0.0.0:* 601/avahi-daemon: r
udp 0 0 0.0.0.0:631 0.0.0.0:* 989/cups-browsed
udp 0 0 0.0.0.0:5353 0.0.0.0:* 601/avahi-daemon: r
udp 0 0 0.0.0.0:26517 0.0.0.0:* 5053/dhclient
udp 0 0 127.0.1.1:53 0.0.0.0:* 1163/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 5053/dhclient
udp6 0 0 :::50297 :::* 601/avahi-daemon: r
udp6 0 0 :::5353 :::* 601/avahi-daemon: r
udp6 0 0 :::46583 :::* 5053/dhclient
如您所见,没有人在端口 7300 上监听。
我不明白那里发生了什么。
最佳答案
正如您从自己的 netstat
显示中看到的那样,也没有人连接到 7300。
你在测试错误的东西。您应该测试 enabled
是否已变为 1。如果失败,connect()
不会(不能)神奇地将 sfd
设置为 -1 .
关于c++ - getaddrinfo 始终连接。即使没有 passive-open 连接监听该端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33332369/
我有以下 CDI 托管 bean: @Named @SessionScoped public class InfoPageController implements Serializable {
我正在使用 dragula js 在移动设备中使用拖放功能,突然遇到了一个问题,出现以下错误。 [Intervention] Unable to preventDefault inside passi
我正在使用 Google Page Speed Insights优化我的页面速度。它告诉我不要使用被动监听器来提高滚动性能。我知道如何使用 Vanilla javascript 来做到这一点。 win
我们使用独立的集群 JMS 服务器托管集群应用程序服务器。应用程序服务器是主动/主动且负载平衡的,而JMS服务器是主动/被动(共享存储)并使用操作系统集群。这意味着从客户端的角度来看,每个端点只有一个
我正在使用锤子进行拖动,加载其他东西时它变得不稳定,正如这条警告消息告诉我的那样。 Handling of 'touchstart' input event was delayed for X ms
我正在使用锤子进行拖动,并且在加载其他内容时它变得不稳定,正如此警告消息所告诉我的那样。 Handling of 'touchstart' input event was delayed for X
因为有两个关于被动和主动 FTP 模式的问题 Passive FTP instead of Active FTP What is the difference between active and p
我发现自己经常创建一个没有公共(public)方法且自包含的对象。它通常处理在其私有(private)方法中传递给其构造函数的参数事件,并且不会引发任何事件或公开任何公共(public)方法。 我称这
引用此 post我已经成功地获得了一个 Linux 设备(Raspberry Pi Model A+)来将我的蓝牙 4.0 USB 加密狗切换到“广告”状态: sudo hciconfig hci0
我们制定了每晚将文件上传到合作伙伴 FTP 站点的流程。他们现在需要被动连接,我们的上传现在失败了。 .NET 4 FtpWebRequest 是否可以实现被动连接而不是主动连接?如果是这样,有人可以
我使用 Chrome 扩展来修改缩放增量,它在控制台中抛出此错误: Added non-passive event listener to a scroll-blocking 'mousewheel'
随着 Chrome 的最新更新[73],他们改变了被动事件监听器与鼠标滚轮在窗口对象上的工作方式。基本上,这已经破坏了许多平滑滚动插件,这些插件在 Chrome 中滚动时消除了传统鼠标滚轮的默认“抖动
我正在 Ubuntu 中使用套接字编程 C++ 编写服务器客户端程序。 这是连接客户端和服务器的代码。 void setParent(string name,int parentPort){
我正在使用 Owin WsFederation 身份验证。对于未经授权的用户,我希望一条路径重定向到 STS,另一条路径返回 401 响应。是否可以为不同的路径设置不同的AuthenticationM
似乎 Microsoft ADFSv2 支持 WS-Trust 和 SAML Passive,但它所构建的 WIF 堆栈不支持 SAML。 WS-Trust 和 SAML-P 有什么区别?它们是否具有
“Presenter First”MVP 模式与“Passive View”一样吗?如果不是,它们有什么不同? 最佳答案 也许我错了,但据我所知: 演示者优先方法中使用的 mvp 模式是围绕 Mart
我正在尝试使用在 Android 模拟器中运行的 Java FTPSClient 从本地 FileZilla 服务器下载文件。 我编写了这个帮助程序代码来下载一个文件: public boolean
我正在尝试使用在 Android 模拟器中运行的 Java FTPSClient 从本地 FileZilla 服务器下载文件。 我写了这个帮助代码来下载一个文件: public boolean dow
我无法解决我在客户站点遇到的这个问题。客户端有两个站点,并且都运行相同版本的我的应用程序。在一个站点上没有问题,但在另一个站点上,当我尝试从 FTP 站点下载文件时,我开始不断收到以下错误: "227
例如,模板中有一个元素使用局部变量#targetElement,目的是在需要时获取其当前宽度。但我不想以编程方式计算样式。尝试使用带有 @ViewChild 注释的 setter get: 从模板中获
我是一名优秀的程序员,十分优秀!