私はCでソケットを実現するアプリケーションを持っています。私はC++とQtには慣れていますが、QtでCとC++の両方を実行できますか?C++のグラフィックアプリケーションとC++のコード** Qtプログラミング**
コードからサンプルがCであるがあります:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define PORT 9600
int main(int argc, char *argv[]){
int sock_cnx; /* Socket pour ouverture de connexion */
struct sockaddr_in serveraddr;
struct sockaddr_in clientaddr;
int newfd;
char buf[1024];
int nbytes;
int addrlen;
int i, j;
/* Ensemble des descripteurs qu’on souhaite surveiller en lecture */
fd_set surveil_fds;
/* Ensemble des descripteurs qu’on va utiliser dans SELECT */
fd_set read_fds;
/* Memorise le plus grand descripteur : a utiliser dans SELECT*/
int fdmax;
addrlen = sizeof(clientaddr);
/* Ouverture de la socket du serveur */
if ((sock_cnx = socket(AF_INET,SOCK_DGRAM,0)) == -1){
perror("Erreur socket");
exit(1);
}
bzero(&serveraddr, sizeof(serveraddr));
serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(PORT);
serveraddr.sin_addr.s_addr = htonl (INADDR_ANY);
bzero(&(serveraddr.sin_zero), 8);
/* Bind */
if (bind(sock_cnx, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) == -1) {
perror("Erreur Bind");
exit(1);
}
........
return 0;
}
私はすでにQtの上のアプリのための私のインターフェイスを作成しました。
extern "C" {
#include "myCHeaderFile.h
} /* extern "C" */
あなたは単にあなたのC++/Qtのファイル内のC-機能にアクセスすることができますよりも、次のように
Qtには[ソケットのサポート](http://doc.qt.io/qt-5/qtcpsocket.html)もありますので、既にQtアプリケーションをお持ちの方はこれを使用することをお勧めします。 1つの利点は、信号を使用して着信データを処理できることです。 –