berkeley-sockets相关内容

“使用中的地址"之间的区别在 Windows 和 Linux 上使用 bind() - errno=98

我有一个侦听端口的小型 TCP 服务器.在调试时,我通常会 CTRL-C 服务器以终止进程. 在 Windows 上,我可以快速重新启动服务并且可以重新启动套接字.在 Linux 上,我必须等待几分钟,然后 bind() 才能成功返回 当 bind() 失败时,它返回 errno=98, address in use. 我想更好地了解实现中的差异.Windows 肯定对开发人员更 ..
发布时间:2021-12-28 12:53:52 服务器开发

如何忽略自己的广播 udp 数据包

对于以下我假设有一张网卡. 我的程序中有一个组件,旨在让子网中的其他人知道它的存在.为此,我实现了一个解决方案,每当程序启动时(以及之后定期),它都会向 INADDR_BROADCAST 发送广播 - 侦听所需端口的任何人都会记住它来自哪里以备后用. 问题在于我不想记住我自己的广播.我认为理论上这很容易做到 - 只需找出本地 ip 并与您在 recvfrom 中获得的内容进行比较. ..
发布时间:2021-12-20 10:39:40 其他开发

套接字关闭:什么时候应该使用SocketShutdown.Both

我认为关机顺序如下(如此处): 使用面向连接的 Socket 时,请始终在关闭 Socket 之前调用 Shutdown 方法.这样可以确保所有数据在关闭之前都在连接的套接字上发送和接收. 这似乎意味着如果我使用 Shutdown(SocketShutdown.Both),则仍可能会消耗尚未接收到的任何数据.要对此进行测试: 我不断地将数据发送到客户端(通过单独线程中的 Send ..
发布时间:2021-04-01 20:53:51 C#/.NET

从套接字读取直到某些字符在缓冲区中

我正在尝试从套接字读入缓冲区,直到使用read(fd, buf, BUFFLEN)到达某个字符为止. 例如,套接字将在一个read调用中接收到两行用空白行分隔的信息. 是否可以将read调用置于循环中,以便在到达此空白行时停止,然后在需要时可以稍后读取其余信息? 解决方案 一种简单的方法是一次读取一个字节,直到前一个字节和当前字节为换行符为止,作为两个连续的换行符字符为空行: ..
发布时间:2020-07-18 19:57:16 其他开发

将套接字绑定到IPv6地址

我正在尝试编写一个同时侦听IPv4和IPv6地址的Web服务器.但是,我最初编写的代码无法正常工作.然后我发现IPv6结构适用于IPv4和IPv6.因此,现在我使用IPv6结构,但是只有IPv4地址有效.这篇帖子为什么我不能将ipv6套接字绑定到一个linklocal地址,它说要添加server.sin6_scope_id = 5;,所以我这样做了,但是它仍然不接受IPv6 telnet连接.任何 ..
发布时间:2020-07-18 19:57:13 其他开发

如果没有将POSIX的`recv`称为“足够快",会发生什么?

我想考虑一个可能的情况,即我的TCP/IP流套接字服务的客户端向服务发送数据的速度超过了它使用并使用它. 那么,基本上,在这种情况下会发生什么? 很明显,我的服务之下的某种服务是用户应用程序,必须接收传入的流并将其存储在某个位置,直到我发出"recv",对吗?肯定是操作系统. 我不想重新打开旧的问题,但是我似乎无法找到这个看似显而易见的问题的答案? 解决方案 TCP提供了 ..
发布时间:2020-07-18 19:57:08 其他开发

如何忽略自己的广播udp数据包

以下,我假设一张网卡. 我的程序中有一个组件旨在让子网中的其他人知道它的存在.为此,我实现了一个解决方案,其中无论程序何时启动(以及之后定期),它将向INADDR_BROADCAST发送广播-监听所需端口的任何人都将记住它来自何处,以供以后使用. 问题是我不想记住自己的广播.我认为从理论上讲这很容易-只需找出本地ip并与您在recvfrom中获得的内容进行比较即可. 但是,我发现 ..
发布时间:2020-05-17 03:19:29 其他开发

“使用中的地址"与“使用中的地址"之间的区别在Windows和Linux上使用bind()-errno = 98

我有一个侦听端口的小型TCP服务器.在调试时,我通常会CTRL-C服务器以终止进程. 在Windows上,我可以快速重新启动服务,并且套接字可以重新启动.在Linux上,我必须等待几分钟,然后bind()成功返回 bind()失败时,它返回errno = 98,正在使用的地址. 我想更好地理解实现之间的差异. Windows肯定对开发人员更友好,但是我有点怀疑Linux在做“错误 ..
发布时间:2020-05-01 09:13:20 服务器开发