我編了一個客戶端和服務器端,實現數據的傳輸。請問怎么將服務器的顯示的內容下QT的界面上顯示???現在客戶端和服務器分別在開發板和linux系統上都能正常的運行通信了。服務器是用C++寫的,現在我就是想給服務器包裝一個QT圖形界面。請問怎么講QT的圖形界面和服務器結合起來,使服務器的內容在QT上顯示。希望在QT上直接就能啟動服務器開始監聽接收數據。並最終能是服務器在windows上正常運行,請大俠們多多指教!!!
5 个解决方案
Qprocess執行外部程序,用readAllStandardOutput()獲得標准輸出
顯示文本有很多控件的,隨便找一個就行
你的服務器程序是在linux上運行的,為啥又要在windows上運行?跨平台的?
qt不是可以跨平台嗎??感覺在windows上能方便用戶使用。謝謝您的指點,我嘗試做一下!!嘿嘿
//#include "stdAfx.h"
#include <winsock2.h>
#include <mswsock.h>
#include <iostream>
using namespace std;
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "mswsock.lib")
DWORD IniSOCKDLL()
{
WORD wVersionRequested;
WSADATA wsaData;
int err=0;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
return err;
}
int main(int argc, char* argv[])
{
cout<<"服務器啟動監聽........"<<endl;
IniSOCKDLL();
SOCKET ss=WSASocket(AF_INET,
SOCK_STREAM,
0,
NULL,
0,
NULL);
SOCKADDR_IN addr;
int len;
addr.sin_family=AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = htons(8000);
len=sizeof(addr);
bind(ss , (PSOCKADDR)&addr , len);
listen(ss,5);
while(1){
SOCKET sc=accept(ss,(PSOCKADDR)&addr,&len);
char buff[1024];
ZeroMemory(buff,1024);
recv(sc,buff,1024,0);
cout<<buff<<endl;//顯示客戶端發送的數據;
closesocket(sc);
}
return 0;
}
qt不是太了解!但是現在還急着用這個!!請大哥幫幫忙吧!!小弟不勝感激!!!!上面是簡單的一個服務器程序,能不能幫我做一個簡單qt圖形界面。讓客服端發送過來的數據顯示在界面上。最好是把它坐成一個可執行程序安裝在windows上。安裝完啟動服務器監聽,就可以接收數據的那種!!
樓主,你的問題解決沒呢?我現在遇到相同的問題,求解啊?拜謝~~~