Dag allen!
Ik zit al een hele tijd te zoeken achter de reden waarom ik geen data via TCP verstuurd krijg in een programma'tje dat ik aan het schrijven ben. Ik heb gekeken in Wireshark, en ook daar kan ik geen verzonden TCP pakketten van mijn applicatie zien. (De UDP pakketten komen wél door).
Eerst dacht ik dat het oftewel een firewall probleem kon zijn, oftewel dat ik ergens een gigantische fout over het hoofd zou gezien hebben in mijn code.
Ik heb dan om te testen een nieuw project aangemaakt waarbij het programma een heel basic TCP verbinding opzet met zichzelf, en data probeert te versturen, waarbij hij in console print als hij op een bepaalde regel is geraakt. Wat bleek? Hij blijft steken bij "waitForConnected()".
"button clicked" krijg ik in console te zien als ik op de knop klik. "connected" komt er niet op.
Iemand die een eenvoudige verklaring hiervoor heeft?
(Kans is zeer reëel dat het iets heel stoms is. Ben namelijk nog maar een noob-programmeur
)
Alvast bedankt!
Ik zit al een hele tijd te zoeken achter de reden waarom ik geen data via TCP verstuurd krijg in een programma'tje dat ik aan het schrijven ben. Ik heb gekeken in Wireshark, en ook daar kan ik geen verzonden TCP pakketten van mijn applicatie zien. (De UDP pakketten komen wél door).
Eerst dacht ik dat het oftewel een firewall probleem kon zijn, oftewel dat ik ergens een gigantische fout over het hoofd zou gezien hebben in mijn code.
Ik heb dan om te testen een nieuw project aangemaakt waarbij het programma een heel basic TCP verbinding opzet met zichzelf, en data probeert te versturen, waarbij hij in console print als hij op een bepaalde regel is geraakt. Wat bleek? Hij blijft steken bij "waitForConnected()".
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| void MainWindow::readTcpData() { QByteArray data = pSocket->readAll(); QD << data; } void MainWindow::on_pushButton_clicked() { QByteArray data; data.append("test"); pSocket = new QTcpSocket( this ); connect( pSocket, SIGNAL(readyRead()), SLOT(readTcpData()) ); QD << "button clicked"; pSocket->connectToHost("127.0.0.1", 9000); if( pSocket->waitForConnected() ) { QD << "connected"; pSocket->write( data ); } } |
"button clicked" krijg ik in console te zien als ik op de knop klik. "connected" komt er niet op.
Iemand die een eenvoudige verklaring hiervoor heeft?
(Kans is zeer reëel dat het iets heel stoms is. Ben namelijk nog maar een noob-programmeur
Alvast bedankt!