sockets相关内容

尽管 KEEPALIVE,TCP,recv 功能仍挂起

在服务器死机后,TCP keepalive(带有小超时)是否会阻止客户端挂在 recv 上? 场景: 服务器和客户端运行在不同的机器上: 客户端通过带有 KEEPALIVE 选项的 TCP 连接到服务器 客户端发送“Hello server"并等待响应 服务器收到“Hello server"并响应“Hello client" 客户端收到响应,休眠 10 秒并重复第 2-4 ..
发布时间:2022-01-19 16:24:11 服务器开发

乱序 FIN 数据包并覆盖?

在浏览开源代码库时,我想到了一个有趣的场景.假设在成功建立 TCP 连接后,TCP 客户端必须发送一个序列号 = 101 的数据包.相反,它发送一个序列号为 201 的 FIN.现在 TCP 服务器认为 FIN 无序并将其排队等待一个要到达的数据包.我的问题是根据 RFC,如果服务器接收到序列号 = 101 且长度 = 150 的数据包,TCP 端点的行为应该是什么.它会覆盖之前发送的 FIN 吗 ..
发布时间:2022-01-19 16:24:02 其他开发

当套接字关闭时,UDP套接字上的选择不会结束 - 我做错了什么?

我正在使用 Linux 系统(带有 2.6.20 内核的 Ubuntu 7.04 服务器). 我有一个程序有一个线程 (thread1) 等待一个 UDP 套接字的选择变得可读.我正在使用 select(我的套接字作为单个 readfd 和单个 exceptfd),而不是只调用 recvfrom,因为我想要超时. 从另一个线程,我关闭并关闭了套接字.如果我在 thread1 在 rec ..
发布时间:2022-01-19 16:23:07 服务器开发

低于底层普通 bsd 套接字

你如何在 C 中做低级套接字,例如:实际发送一个 SYN. 解决方案 您真正想要的是一个原始套接字……您可以使用原始套接字接口完全控制标头和标志,但对它们进行编程更具挑战性.这是一个很好的教程,可以帮助您入门:http://www.cs.binghamton.edu/~steflik/cs455/rawip.txt. ..
发布时间:2022-01-19 16:23:01 其他开发

Boost.Asio 套接字析构函数关闭连接?

boost::asio::ip::tcp::socket 的析构函数究竟做了什么?即使在搜索 Boost 文档和源代码之后,我也无法判断是否需要使用 socket->shutdown(boost::asio::ip::tcp::socket::shutdown_both);套接字->关闭(); 打电话之前 删除套接字; 我需要手动关闭套接字,还是由析构函数处理? 解决方案 当一个s ..
发布时间:2022-01-19 16:22:18 C/C++开发

Android HTTP 连接

谁能告诉我为什么这在 Android 模拟器中不起作用?从浏览器我可以访问并且服务器是内部的.我能想到的只是我的应用缺少一些配置,因此它可以访问网络层. 试试{InetAddress 服务器 = Inet4Address.getByName("thehost");//也不行//或 InetAddress server2 = Inet4Address.getByAddress(new String ..
发布时间:2022-01-19 16:22:08 Java开发

TCP 客户端/服务器图像传输

我正在尝试使用 TCP 套接字发送图像.客户端连接到服务器没有任何问题并开始接收数据.问题是当我尝试使用 FromStream() 方法将流转换为图像时,我得到了 OutOfMemory 异常.谁能帮我吗?真的很重要!!这是代码; 客户端片段 私人无效btnConnect_Click(对象发送者,EventArgs e){IPAddress ipAddress = IPAddress. ..
发布时间:2022-01-19 16:21:18 C#/.NET

如果网络出现故障,socket 会发生什么

假设一个简单的网络模型:A 已经成功地创建了一个到 B 的 TCP 连接,并且他们正在像这样相互通信 A B 我知道如果 A 上的程序死掉(例如核心转储),这将导致一个 RST 数据包到 B.所以任何 B 的读取尝试都会导致 EOF,而 B 的任何写入尝试都会导致 SIGPIPE.我说的对吗? 但是,如果假设 A 上的网络出现故障(例如电缆/路由器故障), ..
发布时间:2022-01-19 16:21:11 服务器开发

如何从服务器优雅地关闭套接字

在服务器端,我试图优雅地关闭连接的套接字.我知道 Socket 上的正确事件顺序应该是: 使用 SocketShutdown.Send 选项关闭套接字 循环/等待,直到套接字接收返回 0 字节 套接字关闭 我有几个问题: 如果 Socket.Receive 永远不会返回(0 字节)怎么办?我们会一直试图永远关闭套接字吗? 每当我在服务器上调用 Close 时,客 ..
发布时间:2022-01-19 16:20:03 C#/.NET

到特定远程 IP 的第一条 UDP 消息丢失

我正在开发一个基于 LAN 的解决方案,该解决方案带有一个必须控制多个“玩家"的“服务器"我选择的协议是 UDP,因为它很简单,我不需要连接,我的流量只包含不时的短命令,我想使用混合的广播消息进行同步,使用单个目标消息进行玩家个人命令. 多播 TCP 将是一种替代方案,但它更复杂,不完全适合该任务,并且通常不受硬件很好的支持. 不幸的是,我遇到了一个奇怪的问题: 使用“sendt ..
发布时间:2022-01-19 16:18:51 其他开发

写入套接字时使用 write() 而不是 send() 的性能影响

我正在使用典型的套接字 API 在 Linux 平台上用 C++ 编写网络应用程序,并且我正在研究将字节数组写入 TCP 流的两种替代方法:通过调用 write() 或通过调用发送().我知道,由于这是 Linux,套接字句柄只是一个文件描述符,因此对套接字执行 read() 和 write() 调用是有效的,但是套接字 API 还提供了 send() 和 recv() 函数来执行相同的任务. ..
发布时间:2022-01-19 16:17:46 C/C++开发

听到来自麦克风的传入音频

我只想听听我使用 NAudio 对麦克风说的话,这是我目前的代码,但问题是我什么都听不到.任何帮助将不胜感激. public 部分类 frmMain : Form{私人 WaveIn waveIn;//从麦克风获取音频私人 WaveOut//将音频发送到扬声器私人 BufferedWaveProvider 波提供者;//从流中获取音频公共 frmMain(){初始化组件();}私人无效 frmM ..
发布时间:2022-01-19 16:17:31 C#/.NET

使用插座处理生物识别指纹考勤设备

我正在尝试使用 Java 程序连接生物识别指纹考勤设备.我使用的设备是 Biocom 指纹考勤系统.但是,我正在搜索和阅读相关内容,我看到可以使用基于设备类型的 SDK(这很难,不合逻辑,而且,它不是全局解决方案!) 我研究了有关如何使用指纹设备连接、发送和检索数据的全球标准,但我还是没有幸运地找到明确的解决方案.目前,我尝试通过创建 Socket 对象(通过以太网端口)与设备连接,但也没有 ..
发布时间:2022-01-19 16:16:39 Java开发

选择套接字输出接口:SO_BINDTODEVICE vs bind before connect

我正在尝试在具有两个接口的系统上设置套接字的输出接口.我用谷歌搜索了很多,我发现了不同的答案.有人说我可以在调用 connect 之前bind 一个套接字来选择特定的接口(如 套接字如何知道要使用哪个网络接口控制器?).但是其他人说这还不够(如 http://codingrelic.geekhold.com/2009/10/code-snippet-sobindtodevice.html 或 如何 ..
发布时间:2022-01-19 16:16:32 服务器开发

是否为每个请求创建了新的套接字?

我正试图围绕网络套接字.到目前为止,我的理解是服务器创建了一个绑定到特定端口的新套接字.然后它监听这个套接字来处理客户端请求. 我已阅读本教程 http://docs.oracle.com/javase/tutorial/networking/sockets/definition.html 它说 如果一切顺利,服务器接受连接.接受后,服务器获得一个绑定到同一个本地端口的新套接字,并且还 ..
发布时间:2022-01-19 16:15:26 其他开发

C++ 中的套接字编程

谁能给我一些关于在 C++ 中使用套接字连接客户端和服务器的示例.我已经阅读了一些教程,现在我想实现它.如何开始? 解决方案 你可以在这里找到一个工作的客户端-服务器程序:Beej 网络编程指南 ..
发布时间:2022-01-19 16:14:43 C/C++开发

哪些客户端情况需要bind()?

我正在学习 C 套接字编程.什么时候在客户端使用 bind()?什么类型的程序需要它,为什么?在哪里可以找到示例? 解决方案 在客户端,如果你想使用特定的客户端端口,你只会使用绑定,这很少见.通常在客户端上,您指定服务器机器的 IP 地址和端口,操作系统将选择您将使用的端口.通常你不关心,但在某些情况下,客户端上可能有防火墙,只允许在特定端口上的传出连接.在这种情况下,您需要先绑定到特定端 ..
发布时间:2022-01-19 16:14:35 其他开发

read() 在套接字编程中没有阻塞

我有一个服务器每 5 秒向客户端发送一次数据.我希望客户端阻止 read() 直到服务器发送一些数据然后打印它.我知道 read () 默认是阻塞的.我的问题是我的客户没有阻止 read().这很奇怪,这似乎不是一个正常的问题. 我的代码在无限循环中打印“Nothing come back".我在一台linux机器上,用c编程.我的代码片段如下.请指教. while(1){n = 读取(s ..
发布时间:2022-01-19 16:13:32 服务器开发