Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 访问C++;带有C++;客户_C++_Sockets_Rpc_Thrift - Fatal编程技术网

C++ 访问C++;带有C++;客户

C++ 访问C++;带有C++;客户,c++,sockets,rpc,thrift,C++,Sockets,Rpc,Thrift,基于C++的服务器有一个打印ping的方法 #include "Something.h" #include <protocol/TBinaryProtocol.h> #include <server/TSimpleServer.h> #include <transport/TServerSocket.h> #include <transport/TBufferTransports.h> using namespace ::apache::thri

基于C++的服务器有一个打印ping的方法

#include "Something.h"
#include <protocol/TBinaryProtocol.h>
#include <server/TSimpleServer.h>
#include <transport/TServerSocket.h>
#include <transport/TBufferTransports.h>

using namespace ::apache::thrift;
using namespace ::apache::thrift::protocol;
using namespace ::apache::thrift::transport;
using namespace ::apache::thrift::server;

using boost::shared_ptr;

using namespace Test;
        class SomethingHandler : virtual public SomethingIf {
     public:
      SomethingHandler() {
        // Your initialization goes here
      }

      int32_t ping() {
        // Your implementation goes here
        printf("ping\n");
       return 0;
      }

    };

    int main(int argc, char **argv) {
      int port = 9090;
      shared_ptr<SomethingHandler> handler(new SomethingHandler());
      shared_ptr<TProcessor> processor(new SomethingProcessor(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;
    }
说明说“运行服务器并用客户端ping”…不知道这意味着什么

我知道

什么也没发生……就好像命令一直在运行,没有终止……所以我不太确定如何继续


非常感谢您的帮助。

这意味着您应该首先运行/Something\u server&(&将作业放在后台,这样就不会使输出混乱)。
然后运行./Something\u客户端,它显然会ping服务器。

据我所知,您有两个可执行文件。第一个是服务器,第二个是客户端。您应该运行服务器。它永远运行。然后运行客户端,它将ping服务器,然后退出。在服务器的终端上,您应该看到一个“ping”输出。我希望这有帮助。太棒了!命令成功了!我从哪里知道“&”之类的东西,“ping”是这类东西的标准术语?ping:,Unix-comand-line:
  #include "Something.h"  // As an example

#include <transport/TSocket.h>
#include <transport/TBufferTransports.h>
#include <protocol/TBinaryProtocol.h>

using namespace apache::thrift;
using namespace apache::thrift::protocol;
using namespace apache::thrift::transport;

using namespace Test;

int main(int argc, char **argv) {
  boost::shared_ptr<TSocket> socket(new TSocket("localhost", 9090));
  boost::shared_ptr<TTransport> transport(new TBufferedTransport(socket));
  boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));

  SomethingClient client(protocol);
  transport->open();
  client.ping();
  transport->close();

  return 0;
}
 ./Something_server