Hi. I have tried upto my level how to create a Server to handle many clients, but my non of the debug msgs are working. Im presenting my simple Server client code.plz support me.

Teamstatus.h
Qt Code:
  1. class TeamStatus : public QMainWindow {
  2. Q_OBJECT
  3. public:
  4. TeamStatus(QWidget *parent = 0);
  5. ~TeamStatus();
  6. void listen();
  7. void socketdisc();
  8. protected:
  9. void changeEvent(QEvent *e);
  10. void incomingConnection(int socketfd);
  11.  
  12. private:
  13. Ui::TeamStatus *ui1;
  14. QTcpServer *server;
  15. QSet <QTcpSocket*> sockets;
  16. public slots:
  17. void read_socket();
To copy to clipboard, switch view to plain text mode 

Teamstatus.cpp
Qt Code:
  1. TeamStatus::TeamStatus(QWidget *parent) :
  2. QMainWindow(parent),
  3. ui1(new Ui::TeamStatus)
  4. {
  5. ui1->setupUi(this);
  6. server=new QTcpServer(this);
  7. TeamStatus::~TeamStatus()
  8. {
  9.  
  10. delete ui1;
  11. }
  12. void TeamStatus::listen()
  13.  
  14.  
  15. {
  16. QHostAddress hAddr;
  17. hAddr.setAddress("192.168.64.55");
  18.  
  19. server->listen(QHostAddress::Any,1234);
  20. qDebug("Listening to new connection");
  21. qDebug("listening for new socket")
  22. }
  23.  
  24. void TeamStatus::incomingConnection(int socketfd)
  25. {{
  26.  
  27. socket=server->nextPendingConnection();
  28. if((socket->state()==QTcpSocket::ConnectedState))
  29. {
  30. QTcpSocket *socket = new QTcpSocket;
  31. socket->setSocketDescriptor(socketfd);
  32.  
  33. qDebug("new connection1 established");
  34.  
  35. }
  36. {
  37. }
  38. qDebug("new connection1 established");
  39.  
  40. }
  41.  
  42. read_socket();
  43.  
  44.  
  45. }
  46.  
  47.  
  48.  
  49. void TeamStatus::read_socket()
  50. {
  51. QTcpSocket *socket=new QTcpSocket;
  52. socket=(QTcpSocket*) sender();
  53.  
  54. qDebug("after readingy);
  55. QByteArray buffer= socket->readLine();
  56. ... check for the buffer, do something
  57.  
  58. void TeamStatus::write_socket()
  59. {
  60. "How to write the data or send packet to single client or for all clients"
  61. }
To copy to clipboard, switch view to plain text mode 


Client.h
Qt Code:
  1. class QTcpSocket;
  2.  
  3. namespace Ui {
  4. class TCPClient;
  5. }
  6.  
  7. class TCPClient : public QWidget {
  8. Q_OBJECT
  9. public:
  10. TCPClient(QWidget *parent = 0);
  11. ~TCPClient();
  12.  
  13. protected:
  14. void changeEvent(QEvent *e);
  15.  
  16. private:
  17. Ui::TCPClient *ui;
  18. QLineEdit *le,*le1;
  19. QTextEdit *te,*te1;
  20. QPushButton *pb_connect, *pb_disconnect;
  21. QPushButton *pb_send,*pb_send1;
  22. QTcpSocket *socket;
  23. QString CHAT;
  24.  
  25. private slots:
  26. void connecttoserver();
  27. void on_connected();
  28. void write();
  29. void write1();
  30. void DisconnectServer();
  31.  
  32. };
  33.  
  34. #endif // TCPCLIENT_H
To copy to clipboard, switch view to plain text mode 



Client.cpp
Qt Code:
  1. TCPClient::TCPClient(QWidget *parent) :
  2. QWidget(parent),
  3. ui(new Ui::TCPClient)
  4. {
  5. ui->setupUi(this);
  6.  
  7. le= new QLineEdit;
  8. le=ui->lineEdit;
  9. le->setDisabled(true);
  10.  
  11. le1=new QLineEdit;
  12. le1=ui->lineEdit_2;
  13. le1->setDisabled(true);
  14.  
  15. te=new QTextEdit;
  16. te=ui->textEdit;
  17. te->setDisabled(true);
  18.  
  19. te1=new QTextEdit;
  20. te1=ui->textEdit_2;
  21. te1->setDisabled(true);
  22.  
  23. pb_connect=new QPushButton;
  24. pb_connect=ui->pushButton;
  25. pb_connect->setText("CONNECT");
  26. pb_connect->setEnabled(true);
  27.  
  28. pb_send=new QPushButton;
  29. pb_send=ui->pushButton_2;
  30. pb_send->setText("Send");
  31. pb_send->setEnabled(false);
  32.  
  33. pb_send1=new QPushButton;
  34. pb_send1=ui->pushButton_3;
  35. pb_send1->setText("SEND");
  36. pb_send1->setEnabled(false);
  37.  
  38. pb_disconnect=new QPushButton;
  39. pb_disconnect=ui->pushButton_4;
  40. pb_disconnect->setEnabled(false);
  41. pb_disconnect->setText("DISCONNECT");
  42.  
  43.  
  44.  
  45. socket=new QTcpSocket(this);
  46.  
  47. connect(pb_connect,SIGNAL(clicked()),this,SLOT(connecttoserver()));
  48. connect(pb_send,SIGNAL(clicked()),this,SLOT(write()));
  49. connect(pb_send1,SIGNAL(clicked()),this,SLOT(write1()));
  50. connect(pb_disconnect,SIGNAL(clicked()),this,SLOT(DisconnectServer()));
  51. connect(socket,SIGNAL(connected()),this,SLOT(on_connected()));
  52. connect(socket,SIGNAL(readyRead()),this,SLOT(read1()));
  53.  
  54. }
  55.  
  56. TCPClient::~TCPClient()
  57. {
  58. delete ui;
  59. }
  60.  
  61. void TCPClient::changeEvent(QEvent *e)
  62. {
  63. QWidget::changeEvent(e);
  64. switch (e->type()) {
  65. case QEvent::LanguageChange:
  66. ui->retranslateUi(this);
  67. break;
  68. default:
  69. break;
  70. }
  71. }
  72.  
  73. void TCPClient::connecttoserver()
  74. {
  75. QHostAddress hAddr;
  76. hAddr.setAddress("192.168.64.55");
  77. socket->connectToHost(hAddr,1234);
  78.  
  79. }
  80.  
  81. void TCPClient::on_connected()
  82. {
  83. pb_connect->setEnabled(false);
  84. pb_send->setEnabled(true);
  85. pb_send1->setEnabled(true);
  86. qDebug("Connection established");
  87. pb_disconnect->setEnabled(true);
  88. le->setEnabled(true);
  89. le1->setEnabled(true);
  90. te->setEnabled(true);
  91. te1->setEnabled(true);
  92. }
  93.  
  94. void TCPClient::write()
  95. {
  96. QString Data="",Data1=this->le->text();
  97. CHAT="1";
  98. Data.append(CHAT);
  99. Data.append(Data1);
  100. socket->write(Data.toUtf8().constData());
  101. qDebug("Client Sent 1 to Server");
  102.  
  103. }
  104. void TCPClient::write1()
  105. {
  106. QString Data="",Data1=this->le->text();
  107. CHAT="2";
  108. Data.append(CHAT);
  109. Data.append(Data1);
  110. socket->write(Data.toUtf8().constData());
  111. qDebug("Client Sent 2 to server");
  112.  
  113. // socket->flush();
  114.  
  115. }
To copy to clipboard, switch view to plain text mode