12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #include "mainFrm.h"
- #include <QtConcurrent>
- #include <QDebug>
- #include<Windows.h>
- mainFrm::mainFrm(QWidget *parent)
- : QMainWindow(parent)
- {
- ui.setupUi(this);
- QFuture<void> Future = QtConcurrent::run(this, &mainFrm::RunServer);
- cv::namedWindow("img", cv::WINDOW_AUTOSIZE);
- //再Qt控件上显示cv::nameWindow窗口
- HWND hwnd = (HWND)cvGetWindowHandle("img");
- HWND paraent = GetParent(hwnd);//得到nameWindow窗口的父句柄
- SetParent(hwnd, (HWND)ui.widget->winId());//设置ui控件的句柄是父句柄
- ShowWindow(paraent, SW_HIDE);//隐藏掉nameWindow窗口
- cv::resizeWindow("img", ui.widget->width(), ui.widget->height());
- }
- mainFrm::~mainFrm()
- {
- }
- void mainFrm::RunServer()
- {
- //创建一个用于响应的类
- rpcServer service;
- //监听的端口,前面的IP地址,似乎只有0,0,0,0和127.0.0.1可用
- std::string add_ip("0.0.0.0:50051");
- //创建一个服务类
- ServerBuilder builder;
- //监听,后面那个参数代表不使用ssl加密
- builder.SetMaxReceiveMessageSize(INT_MAX);
- builder.SetMaxSendMessageSize(10000);
- //builder.SetMaxSendMessageSize(INT_MAX);
- builder.AddListeningPort(add_ip, grpc::InsecureServerCredentials());
- //把我们自己写的响应的类挂上去
- builder.RegisterService(&service);
- //开始
- std::unique_ptr<Server>server(builder.BuildAndStart());
- qDebug() << "Server listening on " << add_ip.c_str() ;
- //ui.textEdit->setText(" Run Server ok ");
- server->Wait();
- }
|