tcp相关内容

从多个线程对同一个 TCP 套接字发出阻塞 write() 调用是否安全?

假设我有两个线程,T1 和 T2. 线程 T1 对 TCP 套接字 S 进行阻塞 write() 调用以发送字节 B1 的大缓冲区.字节 B1 的缓冲区太大以至于 (a) 写调用块和 (b) TCP 必须使用多个段来发送缓冲区. 线程 T2 还在同一个 TCP 套接字 S 上进行阻塞 write() 调用,以发送其他一些大的字节缓冲区 B2. 我的问题是: UNIX 上 T ..
发布时间:2021-12-28 13:00:56 服务器开发

TCP:seq/ack 编号是如何产生的?

我目前正在开发一个程序,该程序可以嗅探从特定地址发送和接收的 TCP 数据包.我想要完成的是用定制的数据包回复某些收到的数据包.我已经完成了解析.我已经可以生成有效的以太网、IP 和——大多数情况下——TCP 数据包. 我唯一无法弄清楚的是 seq/ack 编号是如何确定的. 虽然这可能与问题无关,但该程序是使用 WinPCap 用 C++ 编写的.我正在寻求任何可能对我有帮助的提示、 ..
发布时间:2021-12-28 13:00:47 C/C++开发

两个 TCP 套接字之间的基于内核 (Linux) 的数据中继

我编写了 TCP 中继服务器,它的工作原理类似于对等路由器(超级节点). 最简单的情况是两个打开的套接字和它们之间的数据中继: clientA 服务器 clientB 但是服务器必须提供大约 2000 个这样的 A-B 对,即.4000 个套接字... userland 中有两个众所周知的数据流中继实现(基于 socketA.recv() --> socketB.send( ..
发布时间:2021-12-28 13:00:27 其他开发

当 iOS 应用程序进入后台时,TCP 和 UDP(带多播)连接会发生什么

我创建了几个实验: 设置 1:我创建了一个 TCP 发送器应用程序和一个 TCP 接收器应用程序. 在这个实验中,我在一台 iOS 设备上启动了 TCP 发送器,在另一台 iOS 设备上启动了 TCP 接收器.然后验证两者都已建立连接并发送和接收数据.然后我将 TCP 接收器应用程序置于后台.TCP Sender 应用程序指示连接丢失并崩溃(是的,我就是这么想的). 设置 2:我 ..
发布时间:2021-12-28 13:00:21 移动开发

使用 SSL 创建 TCP 客户端连接

我正在尝试创建 TCP 连接并发送/读取使用 SSL 的数据,但我未能成功完成此操作. 我想做的是这样的: TcpClient _tcpClient = new TcpClient("host", 110);BinaryReader 阅读器 =new BinaryReader(new System.Net.Security.SslStream(_tcpClient.GetStream() ..
发布时间:2021-12-28 13:00:14 C#/.NET

在这个用例中,TCP_CORK 和 TCP_NODELAY 之间有什么显着区别吗?

在写了一篇关于 TCP_NODELAY 和 TCP_CORK 的答案后,我意识到我对 TCP_CORK 的细节的了解一定是缺乏的,因为我不是 100% 清楚为什么 Linux 开发人员认为有必要引入新的 TCP_CORK 标志,而不是仅仅依靠应用程序在适当的时候设置或清除现有的 TCP_NODELAY 标志. 特别是,如果我有一个 Linux 应用程序想要通过 TCP 流发送()一些小的/不 ..
发布时间:2021-12-28 13:00:06 服务器开发

Wiki:Delphi 3rd 方 TCP/IP 组件库的最新技术

我已经有大约 18 个月没有使用裸机 TCP/IP,所以我想知道当前最先进的技术是什么. 我正在寻找积极和消极的方面,同时开发服务器和客户端软件. 我将做一个需要坚如磐石的 TCP/IP 层的项目,所以对我来说这是一个重要的方面 :) 为了使其成为社区维基,我正在寻找更广泛的答案,而不仅仅是“坚如磐石".因此,例如有关特征宽度的信息也值得赞赏. 我将使用答案中找到的相关方面更新 ..
发布时间:2021-12-28 12:59:57 其他开发

使用 Linux,如何指定在哪个以太网接口上传输数据

我正在开发一个基于 Linux 的服务器系统,其中有两个网络接口,都在同一个子网上(现在,我们只说它们是 172.17.32.10 & 172.17.32.11).当我向网络上的主机发送数据时,我想指定数据在服务器上的哪个接口上传输.我需要能够在软件中从一个接口切换到另一个接口(或者甚至可能在两个接口上进行传输)(静态路由规则不适用于此应用程序). 我在 StackOverflow 中发现了 ..
发布时间:2021-12-28 12:59:45 服务器开发

如何在 C++ 中创建 RAW TCP/IP 数据包?

我是 C++ 初学者/网络管理员,但我想如果有人为我指出正确的方向,我可以学习如何做到这一点.大多数教程都是使用由于某种原因不再起作用的旧代码进行演示的. 因为我使用的是 Linux,所以我需要的只是关于如何编写原始 Berkeley 套接字的说明.有人可以快速介绍一下吗? 解决方案 首先阅读 Beej 的套接字编程指南 .它将带您快速了解如何开始编写网络代码.之后,您应该能够从阅读 ..
发布时间:2021-12-28 12:59:36 C/C++开发

如何从充当服务器的 iPhone 流式传输视频?

我正在开发一款适用于 iOS 的应用,其中一部 iPhone 必须将其摄像头记录实时流式传输到另一部 iPhone(为简单起见,两者都在同一个 Wi-Fi 网络中). 流式传输应该没有物理互连(例如,用于将流路由到客户端的服务器).实际上,录制 iPhone 应该是服务器,它为其他 iPhone(或网络中的更多其他 iOS 设备)提供实时流服务. 所以,我需要做的是: 从相机获取实时 ..
发布时间:2021-12-28 12:59:28 移动开发

TCP 连接,仅限 bash

我在脚本中发现了这一行.虽然我全局理解它的作用——打开一个双向 TCP 连接——,但我需要一些关于语法的解释.这是行: exec 5"/dev/tcp/${SERVER}/${PORT}" 还有我的问题: 和 > 通常用于重定向 IO.在那里是什么意思?它可以在其他上下文中使用吗?怎么样? 为什么它有效,而 /dev/tcp 不存在? 为什么是 5?可以是另一个号码吗?允许的值是多少 ..
发布时间:2021-12-28 12:59:21 服务器开发

二进制协议死了吗?

由于当时的互联网速度非常慢(拨号),似乎过去有更多的二进制协议.我一直看到一切都被 HTTP 和 SOAP/REST/XML 取代. 这是为什么? 二进制协议真的死了还是只是不那么流行了?为什么他们会死或不那么受欢迎? 解决方案 你无法打败二进制 二进制协议总是比文本协议更节省空间.即使互联网速度急剧增加,我们希望传达的信息的数量和复杂性也在增加. 您引用的文本协议 ..
发布时间:2021-12-28 12:59:14 其他开发

TCP 是否可以通过多个连接实现更高的传输速率?

是否有可能在高延迟环境中通过多个并行 TCP 连接实现更好的数据传输速率(地理距离很大的公共互联网,假设每个连接没有流量整形或类似的东西),或者 TCP 是否可以通过单个连接来利用整个带宽?连接? 如果接收器没有报告窗口大小为 0 的缓冲区拥塞,TCP 是否会尽可能快地发送数据?因此,如果 RTT 是例如 60 秒,它根本不会影响速率?是否有一些最大窗口大小或其他限制速率的东西? 解决 ..
发布时间:2021-12-28 12:59:04 其他开发

recv() 套接字函数返回长度为 0 的数据

我有一个应用程序,它在端口号 5005 上与另一台设备(带有 Web 服务器的硬件设备)建立了套接字连接. 现在,如果我的硬件设备断开连接,那么我与设备的连接就会断开. 这是否意味着我的套接字使用到现在无效. 我有没有收到什么特别的信息,比如空字符或什么时候这种断开发生了. 如果套接字连接我是已经无效了,那为什么没有 recv() 套接字函数抛出和 SOCKET_ERROR ..
发布时间:2021-12-28 12:58:54 其他开发

我应该如何标记 TCP 数据包的结尾?

在客户端/服务器应用程序中,不同长度的文本数据将在客户端和服务器之间来回发送,我应该如何标记正在发送的数据包的结尾?例如,当服务器正在接收来自客户端的数据包数据时,服务器如何知道客户端数据包已被完全接收? 在数据之前告诉服务器它将要接收的数据包的全长还是标记数据包的结尾更常见? 有些发送的数据只有几个字符,有些可能有数千个字符. 解决方案 TCP 提供连续的数据流.TCP 使用 ..
发布时间:2021-12-28 12:58:40 其他开发

使用不是 2 的幂的 bufsize 调用 socket.recv 的实际影响是什么?

要从 Python 中的套接字读取数据,您可以调用 socket.recv,它具有以下签名: socket.recv(bufsize[, flags]) socket.recv 的python 文档 含糊地说: 注意:为了与硬件和网络现实最佳匹配,bufsize 应该相对较小2的幂,例如4096. 问题:“与硬件和网络现实的最佳匹配"是什么意思?将 bufsize 设置为非 ..
发布时间:2021-12-28 12:58:28 Python

请求前的 HTTP 响应

我的问题可能听起来很愚蠢,但我只是想确定: 是否可以在请求该资源之前发送 HTTP 响应? 例如,您有一个 HTML 页面 index.html,它只显示名为 img.jpg 的图片.现在,如果您的服务器知道访问者每次都会请求 HTML 文件和 jpg 图像: 服务器是否可以在 HTML 文件之后立即发送图像以节省时间? 我知道 HTTP 是一个同步协议,所以理论上它不应该 ..
发布时间:2021-12-28 12:58:10 其他开发