void send_msg_reload_config(char * ip, int port) { char ach[256] = "<head>00024</head><msg>reload_config</msg>"; int smssock=0; int ret=0; if ( (ret=sock_connect(port, inet_addr(ip), &smssock)) <= 0 ) { printf("connect to server failed, error\n"); return; } if ( write2socket(&smssock, ach, strlen(ach)) == 0 ) { printf("write to server failed, error\n"); shutdown(smssock, SHUT_WR); close(smssock); return; } //如果服务器不给答复,就会阻塞在下面的read函数上 if ( sock_ready_read(smssock, 5000) ) //wait 5 seconds { memset(ach,0,sizeof(ach)); ret = read(smssock,&ach[0],sizeof(ach)); printf("cmd reload config done\n\n"); } shutdown(smssock, SHUT_WR); close(smssock); smssock = 0; return ; }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); m_socket = new QTcpSocket(this); QObject::connect(m_socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(stateChanged(QAbstractSocket::SocketState))); QObject::connect(m_socket, SIGNAL(readyRead()), this, SLOT(sock_ready_read())); QObject::connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(sock_error(QAbstractSocket::SocketError))); QObject::connect(ui->m_btnConnect, SIGNAL(clicked()), this, SLOT(sock_disconnect_connect())); QObject::connect(ui->m_btnSend, SIGNAL(clicked()), this, SLOT(sock_send())); }