sockets相关内容
我在这里的第一个问题.我是这种编程的新手,我只编写过 .NET 网站和表单. 现在,我工作的公司要求我制作一个 ActiveX 组件,它侦听 UDP 消息并将它们转换为事件. UDP 消息是从 Avaya 系统发送的,所以我被告知要测试我的 ActiveX,首先我需要创建一个只发送 UDP 的应用程序(只有一个发送预定义 UDP 字符串的按钮).然后创建侦听器套接字,普通的 C# 应用
..
我正在尝试设置 DF(不分段标志)以使用 UDP 发送数据包. 看 Richard Steven 的书 Volume 1 Unix Network Programming;Sockets Networking API,我找不到如何设置它. 我怀疑我会使用 setsockopt() 执行此操作,但在第 193 页的表格中找不到它. 请建议如何做到这一点. 解决方案 您可以通
..
我有一个绑定到 INADDR_ANY 的 UDP 套接字来监听我的服务器拥有的所有 IP 上的数据包.我正在通过同一个套接字发送回复. 现在服务器在发送数据包时会自动选择哪个IP作为源IP,但我希望能够自己设置传出源IP. 有什么方法可以做到这一点,而不必为每个 IP 创建单独的套接字? 解决方案 Nikolai,为每个地址使用单独的套接字和 bind(2) 或弄乱路由表通常不
..
有些人说有一个连接中有 4 个元组 客户端IP地址、客户端端口号、服务器IP地址、服务器端口号 有的说有5个 客户端IP地址、客户端端口号、服务器IP地址、服务器端口号、协议 哪个是正确的? 解决方案 你误解了术语.TCP 连接由 5 元组标识.这意味着 一个 元组,有 5 个元素.这五个要素是: 协议.这通常被省略,因为我们理解的是我们谈论的是 TCP,它留
..
我正在使用 PyQt5 和 Qml 创建客户端应用程序.这是我的 Qml 文件的简化示例: 导入QtQuick 2.11导入 QtQuick.Window 2.2导入 QtQuick.Controls 2.2应用程序窗口 {可见:真宽度:Screen.width/2高度:screen.height/2长方形 {编号:矩形×:187是:92宽度:200身高:200颜色:“蓝色"}} 客户端应用程
..
我有以下环境:2 台主机,每台都有 2 个相互连接的以太网接口(如下图所示): +---------+ +---------+|(1)+---------------+(2) ||主机1 ||主机2 ||||||(3)+--------------+(4) |+---------+ +---------+ 我想编写客户端/服务器套接字工具,它将在 host1 上打开客户端和服务器套接字.我希
..
在WinSock2.h中,invalid socket和socket error是这样定义的?这有什么意义吗? #define INVALID_SOCKET (SOCKET)(~0)#define SOCKET_ERROR (-1) 解决方案 在二进制补码系统上(Windows 总是二进制补码),~0 等于 -1,所以对编译器没有意义. 可能对读者有意义:~0 强调它是一个所有位都设置
..
我正在寻找一种将网络仿真添加到套接字的方法. 基本的解决方案是为连接增加带宽限制. 对我来说理想的解决方案是: 支持高级网络属性(延迟、丢包) 开源 具有与标准套接字类似的 API(或环绕它们) 在 Windows 和 Linux 上工作 支持 IPv4 和 IPv6 我看到了一些在系统级别上工作的选项,甚至作为代理(Dummynet、WANem、neten 等),
..
我对 C 中的套接字编程有点困惑. 您创建一个套接字,将它绑定到一个接口和一个 IP 地址并让它监听.我在上面找到了一些网络资源,并且理解得很好.特别是我发现了一篇文章网络在 Unix 系统下编程非常有用. 让我困惑的是数据到达套接字的时间. 您如何知道数据包何时到达以及数据包有多大,您是否必须自己完成所有繁重的工作? 我在这里的基本假设是数据包可以是可变长度的,所以一旦二
..
在 Linux 的套接字编程中,我需要在套接字中写入数据,但我不知道套接字是打开还是关闭.我如何知道套接字是打开和关闭而不读取? printf("befor read%d\n", n);bzero(缓冲区,MAX_SIZE_BUFFER);n = 读取(sockfd,缓冲区,MAX_SIZE_BUFFER - 1);printf("读取后%d\n", n);如果 (n 我从 sockfd 读
..
我正在用 C 语言编写一个流量生成器,使用 PACKET_MMAP 套接字选项来创建一个环形缓冲区以通过原始套接字发送数据.环形缓冲区充满了要发送的以太网帧,并调用 sendto.环形缓冲区的全部内容通过套接字发送,这应该比在内存中拥有缓冲区并为缓冲区中需要发送的每一帧重复调用 sendto 提供更高的性能. 当不使用 PACKET_MMAP 时,在调用 sendto 时,单个帧会从用户级内
..
Linux UDP 接收缓冲区的最大大小是多少?我认为它仅受可用 RAM 的限制,但是当我设置时 rmem_max 为 5GB: echo 5000000000 >/proc/sys/net/core/rmem_max 以及 4GB 的实际套接字缓冲区(在 Erlang 中): gen_udp:listen(端口, [{recbuf, 4000000000}]) 当我测量缓冲区利用率
..
我正在尝试制作一个可以由多个客户端连接的服务器.到目前为止,这是我的代码: 客户: int main(int argc, char **argv) {结构 sockaddr_in servaddr;int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (sock == -1) perror("Socket");bzero((void
..
在 Java 中使用套接字时,如何在开始处理之前判断客户端是否已完成所有(二进制)数据的发送.例如: istream = new BufferedInputStream (socket.getInputStream());ostream = new BufferedOutputStream(socket.getOutputStream());字节[] 缓冲区 = 新字节[BUFFER_SIZE]
..
有时 boost::asio 似乎在我想要它之前断开连接,即在服务器正确处理断开连接之前.我不确定这是怎么可能的,因为客户端似乎认为它完全发送了消息,但是当服务器发出错误时,它甚至没有读取消息头......在测试期间,这可能只发生五分之一,服务器收到客户端关闭消息,并干净地断开客户端. 错误:“现有连接被远程主机强行关闭" 客户端断开连接: void disconnect(){boo
..
我想知道 TCP 中 bind() 的确切功能.将本地地址“绑定"到套接字是什么意思?如果它为套接字分配一个端口号,那么我们为什么不在客户端使用它呢?我知道该端口是由操作系统在客户端自动分配的,但我并没有全面了解这一切是如何工作的. 在bind()之后,我们监听().绑定与listen() 有什么关系?listen() 会知道 bind() 已经执行了吗?如果是这样,bind() 会进行哪些
..
我将在接下来的几个月里做一些小项目,需要一些书(最好)或 URL 来学习一些基本概念. 一般来说,一台 PC 或嵌入式设备(因项目而异)从外部硬件设备收集一些用户输入或数据,并将其传输到远程 PC,然后将其输入数据库. 后端将使用 Indy 套接字组件在 Delphi 中编码.前端可能是一台使用相同 Indy 套接字运行 Delphi 应用程序的 PC,但它可能同样是一个小型控制器板,
..
在下一个代码中,当我尝试连接客户端时,服务器显示以下错误: “无效参数",我看不到错误. if((l_sock=socket(AF_INET,SOCK_STREAM,0))!=-1){结构 sockaddr_in srv_dir;srv_dir.sin_family=AF_INET;srv_dir.sin_port=8500;srv_dir.sin_addr.s_addr=INADDR_A
..
我使用套接字在 java 中创建了一个多客户端-服务器通信.我有一个服务器和一个客户端.我想用多个客户端测试我的程序.我计划创建一个动态创建 ip 和端口的模拟器.为此我只想知道如何在套接字程序中设置客户端 ip 和端口.任何人都可以帮助我.. 我使用 InetAddress.getByName 来获取客户端地址. public Socket(代理代理){if (proxy != null &
..
我正在编写 HTTP 服务器,但无法发送较大的文件.如果我用 netcat 抓取它们,输出看起来很完美.如果我使用浏览器或 wget,有时我只能获得完整的文件.WGET 不断收到“对等连接重置"错误,请参见下面的输出.Firefox 说“连接已重置". 以下是向客户端发送数据的相关过程: int handle_request(int sockfd, struct cached_file c
..