问题标签 [wsastartup]

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.

0 投票
1 回答
1284 浏览

c++ - boost::asio::io_service 抛出异常

好吧,我真的无法弄清楚这一点。

我在 MSVC 中有一个 DLL 项目,它试图使用 Asio(来自 Boost 1.45.0),但是每当我创建 io_service 时,都会引发异常。这是我为测试目的所做的事情:

这是消息框显示的内容:

winsock:WSAStartup 此时无法运行,因为它用来提供网络服务的底层系统当前不可用

这是 MSDN 所说的(错误代码 10091,WSASYSNOTREADY):

网络子系统不可用。如果 Windows Sockets 实现由于其用于提供网络服务的底层系统当前不可用而无法运行,则 WSAStartup 将返回此错误。用户应检查: 适当的 Windows Sockets DLL 文件是否在当前路径中。他们没有尝试同时使用多个 Windows Sockets 实现。如果您的系统上有多个 Winsock DLL,请确保路径中的第一个适用于当前加载的网络子系统。Windows Sockets 实现文档,以确保当前已正确安装和配置所有必要的组件。

然而,这些似乎都不适用于我(或者我认为)。

这是我的命令行:

/O2 /GL /D "_WIN32_WINNT=0x0501" /D "_WINDLL" /FD /EHsc /MD /Gy /Fo"Release\" /Fd"Release\vc90.pdb" /W3 /WX /nologo /c /TP /错误报告:提示

如果有人知道可能出了什么问题,请帮助我!谢谢。

0 投票
1 回答
26010 浏览

c - WSAStartup 函数如何启动 Winsock DLL 的使用?

WSAStartup 函数如何启动 Winsock DLL 的使用?

根据文档

WSAStartup 函数必须是应用程序或 DLL 调用的第一个 Windows 套接字函数。它允许应用程序或 DLL 指定所需的 Windows 套接字版本并检索特定 Windows 套接字实现的详细信息。应用程序或 DLL 只能在成功调用 WSAStartup 后发出进一步的 Windows Sockets 函数。

该函数初始化WSADATA数据结构,但在套接字编程中我们不传递WSDATA给任何函数,那么程序如何知道 Windows 套接字版本和其他细节?

例如在这段代码中

在这个例子中,我正在WSADATA使用函数初始化数据结构WSAStartup(),之后我没有通过wsaData任何地方。

那么我的程序是如何知道wsaData细节的呢?

谢谢。

0 投票
1 回答
376 浏览

qt - 在 Qt 中使用套接字 winapi

我正在使用与远程服务器通信的 API,它仅在C. 我无法重写它,因为它是一个非常具体的协议,而且会花费太多精力。

提供的 API 它使用标准的 Winsock2 方案。所以,为了使用它,我添加了

到我项目的 .pro 文件。

但是,当程序访问任何 WinSock 函数时WSAStartup,它甚至会立即崩溃并显示错误消息SIGILL -- Illegal Instruction。我究竟做错了什么?

0 投票
2 回答
234 浏览

c++ - Using boost::shared_ptr with WSACleanup

I would like to use a boost::shared_ptr in order for WSACleanup() to be called when my function goes out of scope, like this:

This does not compile,

Error 1 error C2197: 'int (__stdcall *)(void)' : too many arguments for call C:\projects\svn-5.3\ESA\Common\include\boost\detail\shared_count.hpp 116

any thoughts?

0 投票
2 回答
1521 浏览

powershell - PowerShell IIS:\ WebAdmin 远程调用触发 WSAStartup 错误,WSANOTINITIALISED

我正在使用带有 WebAdministration 模块的 PSRemoting 来获取有关各个站点的信息,并且它正在工作。但是,我在调用命令期间收到了一个烦人的非致命 COM 异常,并想知道是否有其他人解决了它。这是一个最小的实现:

结果如下:

我观察到结果是在引发错误之前返回的。

有趣的细节:
- Get-Website、Get-Item "IIS:\..."、Get-WebBinding 都导致相同的错误
- 直接在目标机器上运行 $command 作为书面结果没有错误
- Get-Item "d :\..." 不会导致任何错误
- COM 错误不会

0 投票
2 回答
2895 浏览

c# - 从远程服务器读取证书哈希

尝试使用以下代码从远程计算机获取证书哈希时收到错误消息:

我收到的错误更详细:

“binding.certhashbyte”引发了“System.Runtime.InteropServices.COMException”类型的异常

应用程序没有调用 WSAStartup,或者 WSAStartup 失败。(来自 HRESULT 的异常:0x8007276D)

如果我替换以下行:

使用本地服务器它工作正常。

请注意,使用 ServerManager.OpenRemote(Hostname) 通常可以正常工作(我得到所有其他信息,只是 CertHash 信息会导致错误。我在两台机器(本地和远程)上都拥有管理员权限。系统是使用 IIS 7.5 的 Windows 2008 R2 .

请告诉我我做错了什么/缺少什么/为什么会发生错误。

0 投票
1 回答
2814 浏览

.net - WSA 启动失败

嘿嘿,

我们的软件有一个奇怪的问题。我们有一个通过套接字进行通信的自定义中间件。它在 2003 和 2008 操作系统的 50 多台服务器、集群上成功运行。有时,根据使用我们中间件的开发人员的意愿,我们会在他们的工作站 (Microsoft XP) 上部署我们中间件的一个版本。

我们在一些工作站上收到以下错误:

应用程序尚未调用 WSAStartup 或 WSAStartup 失败

我认为大约有 1% 的工作站有这个问题 注意:每个人都有同一台机器,那台机器上的软件可以不同,其他工具,开发,......

你们中有人知道我们如何解决这个问题吗?或者我们如何才能得到我们得到这个错误的原因?我们不认为在我们的代码中使用套接字是错误的,因为我们的中间件组件已经在服务器(从未遇到过这个问题)和其他机器上运行了 5 年以上。

亲切的问候,

乔纳森

0 投票
1 回答
13036 浏览

c++ - MinGW + Boost:未定义对 `WSAStartup@8' 的引用

下面是我执行的

D:\Just4Fun\software\>make -f Makefile.hands stest
g++.exe -g -D_WIN32_WINNT=0x0601 -ID:\Boost\boost_1_51_0 -LD:\Boost\boost_1_51_0\stage\lib -LD:\MinGW\lib -lboost_system-mgw46-d-1_51 -lboost_filesystem-mgw46-d-1_51 -lboost_iostreams-mgw46-d-1_51 -lws2_32 -lwsock32 -o TestSerial.exe TestSerial.cpp

下面是那个结果

C:\Users\oleg\AppData\Local\Temp\ccXpC7RG.o: In function 'ZN5boost4asio6detail17winsock_init_base7startupERNS2_4dataEhh': D:/Boost/boost_1_51_0/boost/asio/detail/impl/winsock_init.ipp:39: undefined reference to 'WSAStartup@8'C:\Users\oleg\AppData\Local\Temp\ccXpC7RG.o: In function 'ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE': D:/Boost/boost_1_51_0/boost/asio/detail/impl/winsock_init.ipp:48: undefined reference to 'WSACleanup@0' collect2: ld returned 1 exit status make: *** [stest] Error 1

以下是检查有关上述符号的库的结果(我未能以适当的方式对其进行格式化)

`d:\MinGW\lib>nm -C libws2_32.a | grep WSAStartup
00000000 T WSAStartup@8
00000000 I imp _WSAStartup@8

d:\MinGW\lib>nm -C libws2_32.a | grep WSACleanup
00000000 T WSACleanup@0
00000000 I imp _WSACleanup@0

d:\MinGW\lib>nm -C libwsock32.a | grep WSACleanup
00000000 T WSACleanup@0
00000000 I imp _WSACleanup@0

d:\MinGW\lib>nm -C libwsock32.a | grep WSAStartup
00000000 T WSAStartup@8
00000000 I imp _WSAStartup@8`

如我们所见,库中存在符号,并且库位于相应的 -L 命令行选项引用的位置。
那么,为什么“未定义的引用”????

0 投票
1 回答
6392 浏览

c# - “应用程序没有调用 WSAStartup,或者 WSAStartup 失败”是什么意思?

我正在尝试开发通过网络连接到网络服务器的软件;在尝试使用加密狗保护我的软件之前,一切正常。我的加密狗有一些网络功能,它的 API 在网络基础设施下工作。w当我将加密狗检查代码添加到我的程序时,我收到了这个错误:

我放置了引发异常的代码块。我遇到异常的情况是;我登录到程序(一切正常)然后拔出加密狗,然后程序停止并要求加密狗,我再次插入加密狗并尝试登录,但我在网上遇到异常

响应 = (HttpWebResponse)request.GetResponse();

0 投票
2 回答
15779 浏览

cmd - 运行 blat 命令发送邮件时无法连接到服务器(winsock.dll 错误 10060 时超时)

我正在使用Blat,它是用于从命令发送邮件的命令行工具。

首先我运行安装命令来存储在注册表中创建条目的邮件服务器............

在此处输入图像描述

首先,我将 SMTP 服务器设置为smtp.mail.yahoo.com,但错误是一样的。

之后我执行

之后我得到了这个错误......