有没有人懂或者做过Linux系统和Dos系统之间的Qsocket编程的??QT自带的帮助里的几个例子都不能成功应用,连不上.,上位机做服务器,Linux系统.下位机为DOS系统.
下位机DOS系统和WINDOWS系统通信没有问题,下位机应该没有问题,部分相关C代码是
#define TALK_PORT 8760
char *szServer="192.168.0.102";
void SocketIsConnect()
{
do
{
if(kbhit())
exit(0);
SocketConnect(s,inet_addr(szServer),TALK_PORT);
bSocketIsConnect=SocketIsConnected(s);
}while(bSocketIsConnect==FALSE);
printf("Connected to %s:%d\n", szServer, TALK_PORT);
}
Linux系统上位机
.h文件:
# include <qwidget.h>
# include <qpushbutton.h>
# include <qmultilineedit.h>
# include <qlineedit.h>
# include <qscrollview.h>
# include <qstatusbar.h>
# include <qsocket.h>
# include <qserversocket.h>
//# include <qsocketdevice.h>
//# include <qsocketnotifier.h>
class Server : public QServerSocket
{
Q_OBJECT
public:
Server( QObject* parent=0 ) :
QServerSocket(8760,1,parent)
{
if ( !ok() )
{
qWarning("Failed to bind to port 8760");
exit( 1 );
}
}
void newConnection( int socket )
{
QSocket* s = new QSocket( this );
connect( s, SIGNAL(readyRead()), this, SLOT(readClient()) );
connect( s, SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
s->setSocket( socket );
emit newConnect();
}
signals:
void newConnect();
};
class MyMainWindow : public QScrollView
{
Q_OBJECT
public:
MyMainWindow();
public slots:
void send();
void b1click();
void b2click();
void b3click();
void b4click();
void b5click();
void b6click();
void b7click();
void b8click();
void b9click();
void b10click();
void b11click();
void b12click();
void modeclick();
void Checkclick();
void Server1Read();//涓婁綅鏈轰笅浣嶆満閫氳