57得票5回答
SO_SNDBUF和SO_RCVBUF是什么?

请问什么是SO_SNDBUF和SO_RCVBUF选项? 这两个选项通常用于设置套接字(socket)的发送缓冲区和接收缓冲区大小。缓冲区是操作系统用来存储传输数据的内存区域,发送缓冲区用于存储等待发送的数据,而接收缓冲区则用于存储等待应用程序读取的数据。 每个套接字都有自己的发送缓冲区和接...

55得票4回答
通过套接字手动发送HTTP请求

当我通过套接字发送普通的HTTP请求时,服务器没有回复OK响应。我从Firefox中复制了HTTP头。以下是代码: Socket s = new Socket(InetAddress.getByName("stackoverflow.com"), 80); PrintWriter pw = ...

55得票3回答
TCP套接字无连接超时

我打开一个TCP套接字并将其连接到网络上的另一个套接字。然后我可以成功地发送和接收数据。我设置了一个定时器,每秒钟向套接字发送一些内容。 然后我粗暴地中断了连接,强制失去连接(在这种情况下是拔掉以太网电缆)。我的套接字仍然报告每秒钟成功写出数据。这种情况持续了大约1小时30分钟,最终会产生一...

53得票3回答
当服务器接受TCP连接时,端口是否会改变?

当客户端使用TCP连接到服务器时,为TCP数据流创建了一个新的套接字。这个连接是否仍然保持在建立连接时的同一端口上,还是会被更改到其他端口上呢? 答案:在TCP连接建立后,客户端和服务器之间的通信将继续通过原始套接字所用的端口进行。因此,连接将保持在相同的端口上,不会更改到其他端口。

50得票2回答
SOL_SOCKET用于什么?

如Linux的man页面所述: 将此常量用作getsockopt或setsockopt的级别参数,以操纵本节中描述的套接字级选项。 但我不理解这个解释。 SOL_SOCKET的目的是什么? 它是做什么的?

50得票4回答
一个iOS应用程序,它需要进行大量网络请求,最佳架构是什么?

我正在重新思考我正在开发的一个大型应用程序的请求体系架构。目前,我正在使用ASIHTTPRequest来实际进行请求,但由于需要许多不同类型的请求,以响应不同视图控制器中执行的许多不同操作,因此我正在尝试找到最佳的组织这些请求的系统。 我目前正在构建单例“请求者”,它们由应用程序委托保留并围...

50得票8回答
游戏网络物理碰撞

如何在典型的客户端/服务器设置中模拟两个由客户端控制的车辆发生(明智的)碰撞?我确实阅读了关于如何在分布式网络物理方面进行处理(不使用传统的客户端预测)的这篇杰出博客文章,但是这个问题特别涉及如何处理拥有对象的碰撞。 示例 假设客户A领先服务器20毫秒,客户B领先服务器300毫秒(计算延迟...

49得票4回答
"零拷贝网络"与"内核旁路"的区别?

"零拷贝网络"和"内核绕过"有什么区别?它们是两个意思相同的短语吗,还是不同的?内核绕过是在"零拷贝网络"中使用的一种技术,这就是它们之间的关系吗?

48得票8回答
Ruby - 检查端口是否打开

我需要一个快速的方法来确定一个给定的端口是否在Ruby中打开。目前我正在尝试以下代码:require 'socket' def is_port_open?(ip, port) begin TCPSocket.new(ip, port) rescue Errno::ECONNR...

48得票4回答
Socket编程 - listen()和accept()有什么区别?

我一直在阅读这个教程学习socket编程。看起来listen()和accept()系统调用都做同样的事情,即阻塞并等待客户端连接到使用socket()系统调用创建的套接字。为什么需要两个单独的步骤呢?为什么不只使用一个系统调用? 顺便说一下,我已经谷歌了这个问题并找到了类似的问题,但没有一个...