• 4230阅读
  • 0回复

求助:Linux系统上位机服务器QT,DOS系统下位机客户端,QSOCKET编程如何编法?? [复制链接]

上一主题 下一主题
离线zhkfc
 
只看楼主 倒序阅读 楼主  发表于: 2008-08-12
— 本帖被 XChinux 执行加亮操作(2008-08-12) —
有没有人懂或者做过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();//涓婁綅鏈轰笅浣嶆満閫氳
快速回复
限100 字节
 
上一个 下一个