问题标签 [winsock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 关于 Winsock Kernel Buffer 和 Nagle 算法的疑问
读这篇文章的时候,我有一个疑问。
我知道在传输小数据时,默认情况下会启用 Nagle 算法来合并小数据包。这导致在传输之前缓存一些数据。我相信 Winsock Kernel Buffer 是缓存发生的地方。如果我错了,请纠正我。
这是否意味着如果使用 SO_SNDBUF 选项将 Winsock 内核缓冲区设置为零,是否会禁用 Nagle 算法?
如果没有,那么 WINSOCK 将小数据缓存在哪里?
c - 针对高负载网络应用的最高效 Winsock 设计
我知道这是一个普遍的问题,但我需要您对 TCP 服务器/客户端应用程序的建议。
服务器一次只应该处理一个连接。服务器正在向连接的客户端发送实时图像(一帧约为 50K 和每秒 20 帧)。
实际上,在服务器和客户端应用程序启动时,连接就建立了,理论上这个连接应该永远保持活动状态。
我的观点是,由于服务器正在发送实时图像,延迟必须是最小的,那么编写这样一个(简单的)tcp 服务器和客户端的最佳实践是什么,以及如何序列化/反序列化图像以实现“最小延迟”的目标?
提前致谢,
问候
winsock - Boost Asio dll 在 Windows 2000 上引发 ws2_32.dll 错误
我有一个使用 boost Asio 进行网络的 dll。当我将此 dll 链接到在 Windows 2000 上运行的应用程序时,会引发运行时异常:
“无法在动态链接库 WS2_32.dll 中找到过程入口点 freeaddrinfo”
Microsoft 在http://msdn.microsoft.com/en-us/library/ms737931(VS.85).aspx提供了一种解决方法,但这对我不起作用。
谁能指出我的解决方案?
非常感谢,
——维杰
delphi - Delphi获取本地IP地址
可能重复:
Delphi,如何获取所有本地 IP?
在不使用 3rd-party 组件的情况下,在 Delphi 2009 中获取机器本地 IP 地址的最简单快捷的方法是什么?谢谢。
reverse-engineering - 如何更改进程的套接字连接
一个进程正在连接到某个 ip 或域,但我不知道它是什么。该进程无法连接到服务器。如何找到并更改它?
python - IO完成端口key混淆
我正在使用 ctypes 模块在 Python 中使用 Windows DLL API编写基于 IO 完成端口的服务器(此处为源代码)。但这是 API 的一个非常直接的用法,这个问题是针对那些了解 IOCP 而不是 Python 的人。
据我了解 CreateIoCompletionPort 的文档,当您使用与创建的 IOCP 关联的文件句柄(在我的情况下为套接字)调用此函数时,您指定了“用户定义的”完成键。当您开始调用 GetQueuedCompletionStatus 时,您将获得一个完成键值以及一个指向重叠对象的指针。完成键应标识已完成的重叠对象和请求。
但是,假设我在 CreateIoCompletionPort 调用中使用重叠对象传入 100 作为完成键。当同一个重叠对象的 IO 完成并通过 GetQueuedCompletionStatus 返回时,伴随它的完成键要大得多,与原始值 100 没有任何相似之处。
我是否误解了完成键的工作原理,还是我在上面链接的源代码中做错了?
ms-access - 如何从 Microsoft Access 与 Visual Basic 建立网络连接?
我们在 Microsoft Access 中有一个 Visual Basic 应用程序,我们需要建立网络连接。在 VB6 中,有一个名为 WinSock 的方便的小控件使这成为可能,但是对于 Microsoft Access 中存在的精简 VB 版本,我找不到任何类似的东西。有任何想法吗?
由于我没有得到任何答案,我将尝试澄清我需要这个。
我的应用程序发送了一封电子邮件,我们目前正在使用内置的 Outlook 对象来创建一条消息并在后台发送它。缺点是它会提示用户批准“外部程序”来发送电子邮件,这让我们的用户感到沮丧并且似乎没有必要。我在网上找到的所有其他电子邮件选项都要求我们下载或购买控件,这对我们来说太费力了,无法部署给所有用户。
我希望使用套接字控件手动连接到 SMTP 服务器并发送消息(因为这在其他语言中是微不足道的),但我找不到在 VBA 中建立 TCP 连接的任何方法。
c++ - 如何让 Win32 线程等待工作队列和套接字?
我需要一个客户端网络线程来响应要传输的新消息以及网络上新数据的接收。我希望避免该线程执行轮询循环,而是仅根据需要进行处理。
场景如下:
客户端应用程序需要通过大部分但不完全同步的协议与服务器通信。通常,客户端向服务器发送消息并阻塞,直到收到响应。
服务器可以异步处理客户端请求,在这种情况下,对客户端的响应不是结果,而是处理已经开始的通知。当服务器完成对客户端请求的处理后,将在未来某个时间点将结果消息发送到客户端。
异步结果通知可以随时到达客户端。这些通知需要在收到时进行处理,即仅当客户端再次发送时才可能处理积压。
客户端网络线程接收和处理来自服务器的通知,并传输来自客户端的传出消息。
为了实现这一点,我需要唤醒一个线程以在接收到网络数据时或在要传输的消息被排入输入队列时执行处理。
线程如何唤醒以执行排队的工作项或来自套接字的数据的处理?
我主要对使用普通的 Win32 API 感兴趣。
非常欢迎提供最小的示例或相关教程!
network-programming - 在特定的网络适配器上执行 connect()
我正在用 Winsock2 编程。我在系统中有两个网络适配器,一个用于本地连接 (LAN),一个用于外部连接 (PPPOE)。当我执行 connect() 调用以连接到本地地址时,它使用 PPPOE 适配器而不是 LAN。我知道我可以使用指标来调整它,但我不能只使用一些硬代码来强制使用 LAN 适配器吗?提前致谢!
networking - 为什么微软以不同的方式实现套接字?
我目前正在进行一个涉及套接字的项目,我只使用 Linux 的 sys/socket.h 文件。将端口提示给 Microsoft,并意识到 Winsock 是不同的。我想我有两个问题。
首先,这两种实现之间的主要区别是什么?有没有一种简单的方法来“翻译”它们?一个指向指南的链接将不胜感激,因为你们可以获得比谷歌更好的链接。
其次,微软为什么要这么做?他们的动机是什么?为什么他们不保持与其他人相同的实施方式?