最近碰到一个项目,用qt写了一个服务器,java写客户端,然后客户端发送信息,请求服务器的数据。网上很多资料都是qt与qt通信,java与java通信,既然都是利用tcp协议,理论上也是可以进行java与qt的通信的,但是有许多细节需要注意。比如双方接收数据时都是使用byte数组 类型,另外qt发送数据时不能把QString插入数据流中,这样java端接收的数据就是一个空串。以下是我简化的一段代码,java客户端发送一个数据(比如 0001),qt服务器端发回java客户端处理后的数据(0001 is ok !)。代码如下:
qt服务器端
tcpserver.h
#ifndef TCPSERVER_H
#define TCPSERVER_H
#include <QTcpServer>
class TcpServer : public QTcpServer
{
Q_OBJECT
public:
explicit TcpServer(QObject *parent = 0, int port = 0);
signals:
private:
void incomingConnection(int socketDescriptor);
public slots:
};
#endif // TCPSERVER_H
tcpserver.cpp
#include "tcpserver.h"
#include "tcpsocket.h"
#include <QDebug>
TcpServer::TcpServer(QObject *parent, int port) :
QTcpServer(parent)
{