View Full Version : QTcpServer/Socket Bidrirectional Communication

29th June 2011, 09:10
Dear All,

Am working on Server and Socket project. I want both of the server and socket talk to each other, meaning writing and reading! However, its not working! I tried the socket writing to the server, and it works great! But the server writing to the client is not working!! wat i am missing here :confused:

Server Code:

ServerOne::ServerOne(QObject* parent) : QObject(parent) {
connect(&m_TcpServer8000, SIGNAL(newConnection()), this, SLOT(acceptLegacyDLIConnection()));
timer = new QTimer();
//here i define the signal slot of the server writing to the socket
connect(timer, SIGNAL(timeout()), this, SLOT (handleWrite()));

ServerOne::~ServerOne() {

//accepts the incoming connection
void ServerOne::acceptLegacyDLIConnection(){
m_TcpSocket8000 = m_TcpServer8000.nextPendingConnection();
connect(m_TcpSocket8000, SIGNAL(readyRead()), this, SLOT(handleRead()));

//handles the incoming data from the socket
void ServerOne::handleRead(){

//handles the write to the client socket
void ServerOne::handleWrite(){
m_TcpSocket8000->write("In the server and writing to the client..");
qDebug() << "writing..";

Client Side:

Client::Client(QObject* parent) :
QObject(parent) {
connect(client8000, SIGNAL(connected()), this, SLOT(handleWrite()));
timer = new QTimer(this);
connect(client8000, SIGNAL(readyRead()), this, SLOT(handleRead()));

Client::~Client() {

//connects the socket to the server and starts timer to send continous msgs to server
void Client::connectToServer(QString address, quint16 port) {
QHostAddress addr(address);
client8000->connectToHost(addr, port);
connect(timer, SIGNAL(timeout()), this, SLOT(handleWrite()));

// handles the writing to server
void Client::handleWrite() {

//handles the incoming data from server
void Client::handleRead() {
char buffer [1024] = {0};
client8000->read(buffer, client8000->bytesAvailable());
cout << buffer << endl;

29th June 2011, 09:27
Please provide a minimum compilable example reproducing the problem.