j'ai très simple serveur java:Server sur java ne reçoit pas un message de client Qt
int port = 2245;
try {
ServerSocket ss = new ServerSocket(port);
System.out.println("Waiting for a client...");
Socket incomingClient = ss.accept();
InputStream i = incomingClient.getInputStream();
OutputStream o = incomingClient.getOutputStream(); // Use it write to the Client Socket
InputStreamReader isr = new InputStreamReader(i);
BufferedReader br = new BufferedReader(isr);
String str = new String();
while ((str = br.readLine())!=null){
System.out.println("str = " + str);
o.write(123); //("message from server");
}
} catch(Exception x) { x.printStackTrace(); }
Et je client simple Qt, qui utilisent QNetworkAccessManager
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QUrl url("http://127.0.0.1:2245");
url.port(6666);
QByteArray postData;
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QString postKey("SomeKey");
postData.append(postKey);
QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));
Je déclarai mainwindow.h dans la fente replyFinished
public slots:
void replyFinished(QNetworkReply* reply);
dans le meilleur des cas serveur d'obtenir des en-têtes comme (POST/HTTP/1.1 Content-Type: application/x-www-form-urlencoded et d'autres)
Mais sur le serveur, je ne peux pas lire mon message du client et le client ne reçoit pas de réponse du serveur java
Vous utilisez le port 2245 ou 6666? Ce ne peut être que l'un ou l'autre, pas les deux. – MrEricSir
J'utilise 2245 port partout, désolé si cela vous a dérouté Serveur voir le client qt et même obtenir des données, mais je ne peux pas obtenir de réponse sur le client Qt de serveur Java – Dmitry
Dans ce cas, quoi de neuf avec cette ligne: ' url.port (6666); ' – MrEricSir