操作系统:Linux 2.6.24(x86)
我的应用程序在多个客户端连接到UDP端口4500的服务器上运行.
间歇性地,应用程序无法将UDP流量发送到UDP端口4500上的客户端
这是因为sendmsg系统调用失败,错误代码3(ESRCH)
sendmsg的手册页没有谈论错误ESRCH
即使在终止应用程序并重新启动它之后,问题也无法解决.
其他端口上的UDP流量工作正常
重新启动服务器是唯一的解决方案.
使用内核2.6.11,我没有看到这样的问题.
有关如何调试此问题的任何想法?
我正在尝试捕获代理设置("自动检测设置").我的代码适用于XP和Vista.但它不适用于Windows 7
请查看目标平台的详细信息
Windows 7 Enterprise,IE 8.0.7600.16385,Wininet.dll 8.0.7600.16535
请参阅代码段
INTERNET_PER_CONN_OPTION_LIST List;
INTERNET_PER_CONN_OPTION Option[1];
unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
Option[0].dwOption = INTERNET_PER_CONN_FLAGS;
List.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
List.pszConnection = NULL;
List.dwOptionCount = 1;
List.dwOptionError = 0;
List.pOptions = Option;
if(!InternetQueryOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &List, &nSize))
AfxMessageBox(L"InternetQueryOption failed! (%d)\n");
TCHAR a[100];
swprintf(a, L"Flag value is : %d",Option[0].Value.dwValue, 80);
AfxMessageBox(a);
Run Code Online (Sandbox Code Playgroud)
但是在Windows 7上,即使选中了IE中的"自动检测设置"选项,程序也会指出该标志未设置
我尝试使用WinHttp api,如下所示.
WINHTTP_CURRENT_USER_IE_PROXY_CONFIG stProxyConfig = {0};
WinHttpGetIEProxyConfigForCurrentUser(&stProxyConfig);
if (stProxyConfig.fAutoDetect == TRUE)
AfxMessageBox(L"Auto proxy detection enabled");
else
AfxMessageBox(L"Auto proxy detection disabled");
Run Code Online (Sandbox Code Playgroud)
在Windows 7上,上面的代码也无法捕获"自动检测设置"选项.对此的任何意见都非常感谢.
谢谢约翰