thrift windows服务运行时显示 errno = 10022 怎么办??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thrift windows服务运行时显示 errno = 10022 怎么办??相关的知识,希望对你有一定的参考价值。

linux下可以使用,我用的库是windows版本的库,为什么显示不能用呢?
我的代码如下:
#include <transport/TSocket.h>
#include <protocol/TBinaryProtocol.h>
#include <server/TSimpleServer.h>
#include <transport/TServerSocket.h>
#include <transport/TBufferTransports.h>
#include <string>
#pragma comment(lib, "libthrift.lib")
using namespace ::apache::thrift;
using namespace ::apache::thrift::protocol;
using namespace ::apache::thrift::transport;
using namespace ::apache::thrift::server;
#include "OptionalFun.h"
using boost::shared_ptr;
#include "interface\normalized_data.h"

#pragma comment(lib,"libthrift.lib")//链接库文件

class OptionalFunHandler : virtual public OptionalFunIf
public:
OptionalFunHandler()
// Your initialization goes here


void SaveData(const stuData& user)
// Your implementation goes here
NormalizedData* pstuNor ;
pstuNor = (NormalizedData*)malloc(sizeof(NormalizedData));
memcpy(pstuNor,user.strMemory.c_str(),user.iLength);

printf("NormalizedData:%d \n",pstuNor->attachments_count);
printf("SaveData\n");
free(pstuNor);


void GetData(stuData& _return)
// Your implementation goes here
printf("GetData\n");


;

int main(int argc, char **argv)
WORD wVersionRequested;

WSADATA wsaData;

int err;

wVersionRequested =MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
//-------------------------------//
//对上面这段代码做个说明,这是依赖windows的一段代码
//到2014.9.2官网的稳定版0.9.1,仍需要这段代码才可以在windows下编译通过。
//但是如果用git clone最新版,这个错误已经修正
//最新版注释掉这段代码,一样可以在windows下编译通过。
//备注时间:2014.9.2

int port = 9090;
shared_ptr<OptionalFunHandler> handler(new OptionalFunHandler());
shared_ptr<TProcessor> processor(new OptionalFunProcessor(handler));
shared_ptr<TServerTransport> serverTransport(new TServerSocket(port));
shared_ptr<TTransportFactory> transportFactory(new TBufferedTransportFactory());
shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory());

TSimpleServer server(processor, serverTransport, transportFactory, protocolFactory);
server.serve();
return 0;

一个已建立的连接被你的主机上的软件终止,可能是因为一次数据传输超时或是协议错误。
WSAECONNREFUSED (10061) Connection refused.
因为目标主机主动拒绝,连接不能建立。这通常是因为试图连接到一个远程主机上不活动的服务,如没有服务器应用程序处于执行状态。追问

不可能啊,是thrift建立的连接啊!而且第一次启动服务器就这样!

参考技术A 还带头人人放个技能任霆发够具体人简答题

服务启动时显示 Windows 登录屏幕的消息

【中文标题】服务启动时显示 Windows 登录屏幕的消息【英文标题】:Message to Windows logon screen when services started 【发布时间】:2015-08-06 01:21:59 【问题描述】:

当我启动 Windows 8.1 笔记本电脑时,我想在 Windows 登录屏幕上显示一条消息,以便我知道所有服务和启动进程何时启动。除了只是等待几分钟,假设所有可以启动的服务都已经这样做了,我如何编写一个流程来查询“启动完成”条件,然后更新 UI?

是否可以使用组策略启动脚本或在某些“服务已启动”条件下触发的任务计划程序例程来检测启动完成?我应该在事件日志中查找特定消息吗?

要向登录屏幕发送消息,我猜我需要编写一个 Windows 凭据提供程序,作为 C# 开发人员,我认为我应该关注 PGina?

在我开始从头开始编写代码之前,是否已经有针对此问题的固定解决方案?

我目前正在寻找Add message to logon screen windows 7,通过更新注册表项,我应该能够警告登录是否安全……一旦我知道如何确定这种情况。


[edit] 删除了大量不相关的文本,并说明我为什么要这样做。希望回答一个简洁而有针对性的问题。

【问题讨论】:

您好 TonyG,您找到解决问题的方法了吗?你能和我分享这个吗?我有一项监控 USB 加密狗插入的服务。如果用户插入加密狗,本地用户帐户将被激活并可用于登录。 对于该应用程序,请参阅@vivek 的选项 #2。我没有编写代码,因为即使使用 CP,我们似乎仍然不知道 Windows 何时完成。我们只知道特定服务何时启动。我需要监视在启动/登录时启动的所有服务的列表,然后在启动时从列表中删除每个服务,以便很好地猜测启动是否完成。我希望找到一个标志,当它用尽启动列表时,Windows 本身可能会设置它。这样我就不需要单独手动维护我的列表了。 【参考方案1】:

是的,您需要使用凭据提供程序 (CP)。我更熟悉 C++ 和 Credential Provider V1,所以下面的术语来自那里。您可以轻松找到等效的 C# 代码或使用本机互操作。

Services 的检查需要在 CP 的 SetSelected 方法中。

你有两个选择-

    如果您正在等待 Windows 服务,请使用服务控制管理器将状态查询为“已启动”。

    如果您正在等待自己的服务,请为每个服务添加“就绪”事件并从那里触发 SetEvent。在 Credential Provider 端,按顺序对每个服务使用 WaitForSingleObject。某些服务很可能会先于其他服务启动。没关系。但是,如果您需要在每个服务启动时显示一个指示 UI,您可以在循环中使用 WaitForMultipleObjects 并继续删除收到信号的事件句柄。

【讨论】:

非常感谢您回复这个较早的询问。我将在接下来的几周内为此编写代码。如果暂时没有其他人发帖,会将其标记为已接受的答案。我现在只担心升级到 Windows 10 后我不会使用它,但这是另一个话题,你确实回答了这个问题。 根据 MSDN,V1 CP 也适用于 Windows 10。但是,它似乎存在一些错误。出于您的目的,它可能没问题。 @TonyG 你能解决这个要求吗?是否有可能得到一个这样的例子?我有完全相同的问题。 @FranzKiermaier 我从来没有为这个挑​​战创造过好的解决方案。似乎解决方案介于等待延迟服务启动和监视磁盘和 CPU 以了解启动后活动的暂停之间。请参阅有关该主题的其他线程:***.com/questions/10501853/…

以上是关于thrift windows服务运行时显示 errno = 10022 怎么办??的主要内容,如果未能解决你的问题,请参考以下文章

如果Windows下Quick软件运行时显示无权限打开exe

使用window系统命令提示符输入netstat时显示“不是内部或外部命令,也不是可运行的程序

在 Windows 中运行批处理文件时显示 %variables% 为空白/丢失 [重复]

python 在生产服务器上运行时显示烧瓶回溯

如何解决运行nslookup时显示DNS服务器名为unknown?

QTextBrowser 无法在运行时显示所有数据