sockets相关内容

有没有办法阻止套接字发送(),直到我们得到该数据包的确认?

还是我必须在应用程序级别实现它? 解决方案 几周前我在实现 VoIP 服务器时也遇到了同样的问题.花了几天后,我可以想出一个解决方案.正如许多其他人提到的,没有任何直接的系统调用来完成这项工作.相反, 您可以在发送带有TCP_INFO选项的数据包后检查我们是否收到了ACK. 如果我们没有收到 ACK,请等待几毫秒并再次检查. 这可能会一直持续到超时.您必须将其实现为 send ..
发布时间:2022-01-19 16:13:26 服务器开发

在 IPv4 客户端/服务器应用程序中添加对 IPv6 的支持 - sin6_flowinfo 和 sin6_scope_id 字段?

我致力于为多个应用程序实现 IPv6 支持,但我想知道这两个字段的用途.这里关于这个的问题很少,所以我不确定我是否正确. 关于范围 ID (sin6_scope_id) - 好吧,Q1 , Q2 , Q3 和 Q4 让我了解了范围 ID,我想我明白了.因此,我必须再添加一个配置参数,以使 scope-id 可配置.(我决定在这里添加这个,以防有人对此感兴趣).很快 - 范围 ID 是唯一确定 ..
发布时间:2022-01-19 16:09:59 其他开发

在 C 中获取 LAN 上的设备列表

我想获取连接到本地网络的可用设备列表(它们的 IP 地址或主机名应该没问题).我在 C# 中有一些示例,但我找不到任何使用 C/C++ 的示例.我熟悉 BSD 套接字 API,只是为了澄清一下. 我有一个“存根"的想法:也许我应该确定我 LAN 上的设备可能属于的 IP 地址范围,然后确定它们是否存在.G.回应 PING,或类似的东西.我怎样才能做到这些? 我希望我的应用程序在 Lin ..
发布时间:2022-01-19 16:09:40 其他开发

使用 sendto()/recvfrom() 而不是 connect()/send()/recv() 与 UDP 套接字的目的是什么?

我可以掌握 TCP 与 UDP 的概念,但我仍然不知道为什么有两种发送 UDP 数据包的方式,并且我仍然不明白这是否是绝对必要的 bind() 和 accept()... 解决方案 accept() 用于 TCP.它与UDP无关. UDP 中的 connect() 不会对另一端做任何事情,它只是让本地 API 知道您向谁发送和接收谁. 如果你还不知道,或者不关心,或者想用 ..
发布时间:2022-01-19 16:06:53 其他开发

使用 UDP 套接字通过 connect()ing 获取我自己的 IP 地址?

我听说我可以通过创建 UDP 套接字 并connect() 到像 Google 这样的有效目标 IP 地址来获得自己的 IP 地址(不是 127.0.0.1). 但是,我找不到任何参考或示例. 这可能吗?如果是这样,我该怎么做? char* get_my_ip() {int sockfd;结构 sockaddr_storage 远程地址;//客户端地址socklen_t 地址;字符远 ..
发布时间:2022-01-19 16:05:52 服务器开发

UDP 是否允许重新打包?

我知道对于 TCP,您可以启用例如 Nagle 算法.但是,您可以为 UDP 提供类似的东西吗? 实用问题(假设 UDP 套接字): 如果我在短时间内调用 send() 两次,每次 send() 调用中有 1 个字节的数据.传输层是否可能决定只发送 1 个 UPD 数据包,其中 1 字节 + 1 字节 = 2 字节 数据? 提前致谢! 解决方案 不符合 RFC (RFC ..
发布时间:2022-01-19 16:05:29 其他开发

原始套接字侦听器

这是一个关于 linux c 编程原始套接字的快速问题.如果我只想用原始套接字监听任何接口,我必须实际绑定到 IP 地址或接口来监听流量吗?据我了解,我觉得我应该能够调用 sock();然后开始 recvfrom() 流量.也许我错了,但我见过一些不使用它的程序. 解决方案 你是对的,你唯一需要做的就是调用 socket() 然后 recvfrom().不过请注意,使用 SOCK_RAW ..
发布时间:2022-01-19 16:03:12 服务器开发

如何在 iOS 4 中列出 TCP/UDP 连接

我有兴趣获取 iOS 4.3 设备上的活动 TCP/UDP 网络连接列表.基本上,我正在寻找与在 OS X Darwin 下发出“netstat -anp tcp"(或相同,但使用 udp)命令获得的相同类型的信息. 我搜索了 Apple 的 iOS 开发人员库(尤其是 NSNetServices、CFNetServices 和 iOS 手册页)和 Internet,但没有得到好的结果.然而 ..
发布时间:2022-01-19 16:03:02 移动开发

使用 C 的套接字编程中的双向通信

我对套接字编程有一点疑问.我能够将我的数据从客户端发送到服务器,我的服务器处理数据.处理过的数据的o/p,我想发回给我的客户.那么我们可以使用同一个套接字将数据“写"回客户端吗?我的意思是服务器在接受连接和接收数据之前在端口上侦听,所以同样,我是否需要让我的客户端侦听其他端口(将其绑定到其他套接字)并使我的服务器连接到该套接字并将数据传回.任何类型的示例或解释或参考将不胜感激.提前非常感谢. ..
发布时间:2022-01-19 16:01:59 其他开发

python中Socket.accept()的返回值是什么

我用python中的socket模块做了一个简单的服务器和一个简单的客户端. 服务器: # server.py导入套接字s = socket.socket()主机 = socket.gethostname()端口 = 1234s.bind((主机,端口))听(5)而真:c, addr = s.accept()print '得到连接', addrc.send('感谢您的连接')c.close ..
发布时间:2022-01-19 16:00:16 Python

如何使用 sendmsg() 在 2 个进程之间通过套接字发送文件描述符?

@cnicutar 在这个问题上回答我之后 问题,我试图将文件描述符从父进程发送给它的子进程.基于此示例,我写了这段代码: int socket_fd ,accepted_socket_fd, on = 1;int server_sd,worker_sd,pair_sd[2];结构 sockaddr_in 客户端地址;结构 sockaddr_in server_address;/* ====== ..
发布时间:2022-01-19 16:00:01 服务器开发

可以在没有服务器调用“接受"的情况下成功返回套接字上的“连接"调用吗?

服务器创建了一个套接字并绑定到一个端口,并启动了一个正在循环中的线程来接受连接.稍后由于异常导致线程退出而退出循环,但套接字仍绑定到端口.现在,如果客户端“连接"到该服务器,它就成功了.这怎么可能?如果我理解正确,则仅在服务器在侦听套接字上“接受"后才返回“连接".我在这里遗漏了什么吗? 解决方案 如果我理解正确,“连接"仅在服务器在侦听套接字上“接受"后才会返回.我在这里遗漏了什么吗 ..
发布时间:2022-01-19 15:59:22 服务器开发

为winsock recvfrom设置超时

我正在尝试在端口上尝试 recvfrom() 16 毫秒后设置一个阻塞套接字以超时.平台是 Windows.我在网上看了很多例子,看起来很简单,我似乎无法让它工作.任何帮助将不胜感激! #include #include #pragma 注释(lib,“ws2_32.lib")#define PORT_NUM 8001诠释主要(无效){标准::字符串本地IP;s ..
发布时间:2022-01-19 15:59:07 其他开发

Java 套接字编程

我正在使用 java 套接字构建一个简单的客户端/服务器应用程序并尝试使用 ObjectOutputStream 等. 我一直在关注这个网址上的教程 http://java.sun.com/developer/technicalArticles/ALT/sockets 在谈到通过套接字传输对象时从一半开始. 查看我的客户端代码 http://pastebin.com/m37e4c577 ..
发布时间:2022-01-19 15:59:00 Java开发

如何在 .NET 中重用套接字?

我正在尝试重新连接到我已断开连接的套接字,但由于某种原因它不允许它,即使我调用 Disconnect 方法并将参数“reuseSocket"设置为 true. _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);_socket.Connect(ipAddress, 端口);// ..
发布时间:2022-01-19 15:57:57 C#/.NET

了解结构 sockaddr

struct sockaddr {无符号短 sa_family;//地址族,AF_xxx字符 sa_data[14];//14字节的协议地址}; 在这个结构中,sa_family所描述的address family究竟是什么意思? 这是否意味着像 TCP/UDP 这样的协议有“地址"?好吧,我认为协议可以是识别号而不是地址. 无论如何,如果是,那么他们的家庭是根据什么划分的? ..

SOL_SOCKET 是做什么用的?

正如 Linux man 页面中所述 使用此常量作为 getsockopt 或 setsockopt 的级别参数来操作本节中描述的套接字级别选项 但我不明白这个解释.SOL_SOCKET 的用途是什么?它有什么作用? 解决方案 SOL_SOCKET 是socket层本身.它用于与协议无关的选项. 您可以阅读更多这里. ..
发布时间:2022-01-19 15:57:40 其他开发