经过两天间间断断的琐碎尝试后,好像终于把问题搞定了,话不多说,直接上代码:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QKeyEvent>
#include<termio.h>
#include<stdio.h>
#include<unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
int clientSocket;
struct sockaddr_in serverAddr;
protected:
virtual void keyPressEvent(QKeyEvent *ev);
virtual void keyReleaseEvent(QKeyEvent *ev);
virtual void conct();
};
#endif // MAINWINDOW_H
//以上是手机端的头文件代码,其实就加了一下socket和serveraddr,以及连接方法 conct(),那么多include,也只是因为我懒得去一一分辨哪个有用哪个无用,全复制过来了
//以下则是CPP部分的代码:
`#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QKeyEvent>
#include<termio.h>
#include<stdio.h>
#include<unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>
#define SERVER_PORT 12341
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
this->grabKeyboard();
ui->setupUi(this);
if((clientSocket = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
ui->label->setText("socket fail");
return;
}
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(SERVER_PORT);
serverAddr.sin_addr.s_addr = inet_addr("192.168.0.100");//电脑端的IP地址
conct();
}
void MainWindow::keyPressEvent(QKeyEvent *ev)
{
QString s = "down