上海婦科疾病研究所 上海女性不孕醫(yī)院 上海引產(chǎn)醫(yī)院 無痛引產(chǎn)痛不痛 上海人流醫(yī)院 白癜風(fēng)治療醫(yī)院 上海小兒腦癱醫(yī)院 上海女子醫(yī)院
千年殇,完美世界前传下载,完结小说

国产精品无码毛片AV_亚洲毛片精品在线_全球黄色短视频在线免费观看_亚洲一区二区爱av_成年人免费观看网址_欧美美女性爱喷水网址_亚洲毛片av无码不卡_国产无码视频在线观看_高清国语自产拍在线播放_女人午夜免费黄片

用戶名: 密碼:
主頁 設(shè)為首頁 加入收藏
      產(chǎn)品中心       技術(shù)中心       下載中心        社區(qū)新聞        誠聘英才       大學(xué)計劃        關(guān)于我們       技術(shù)論壇
  您的當(dāng)前位置:ADSP開源社區(qū) >> 技術(shù)中心 >> Blackfin 今天是:
技術(shù)中心  
SigmaDSP
SHARC
A2B音頻總線
Blackfin
ADI操作系統(tǒng)
ADSP-218X
TigerSAHRC
ADI DSP仿真器
產(chǎn)品導(dǎo)航
ADI DSP仿真器
SigmaDSP開發(fā)板
ADI A2B總線開發(fā)板
SHARC DSP開發(fā)板
銷售網(wǎng)絡(luò)
Blackfin  
基于balckfin架構(gòu)下的socket通信-客戶端程序設(shè)計
[ 作者: ] [ 來源:ADSP開源社區(qū) ] [ 發(fā)布時間:2011-11-22 ]

客戶端程序新鮮出爐了........主要采用了OTIPIA提供的通信類完成的設(shè)計,我基本上沒有參與,幾個同學(xué)寫出來的,很不錯,鼓個掌。。!

Qtopia提供了四個與套接字相關(guān)的類,分別說明如下:

a)QServerSocket類。它是基于TCP的服務(wù)器類,可以讓它在指定端口上進行監(jiān)聽。它的API使用十分方便,調(diào)用構(gòu)造函數(shù),實現(xiàn)newConnection()成員函數(shù)來建立新連接即可。

b)QSocket類。它是具有緩沖的TCP連接類。

C)QSocketDevice類。它是獨立于平臺的低級別Socket—API類。

d)QSocketNotifier類。它是socket回調(diào)支持類,利用它可以在Qtopia中編寫異步socket通信程序。一旦打開一個非阻塞式socket(如TCP、UDP等)或其他操作系統(tǒng)支持的協(xié)議族,就可以創(chuàng)建一QSoeketNotifier對象來監(jiān)測套接字。當(dāng)發(fā)生套接字事件時,將QSocketNotifier發(fā)出的activated()信號與希望被調(diào)用的槽連接。

客戶端主要的代碼如下:

(1)窗體函數(shù)

 

#include "win.h"

#include <qvariant.h>

#include <qlabel.h>

#include <qlayout.h>

#include <qtooltip.h>

#include <qwhatsthis.h>

char m_str[256];

 

/*

 *  Constructs a Form1 as a child of 'parent', with the

 *  name 'name' and widget flags set to 'f'.

 *

 *  The dialog will by default be modeless, unless you set 'modal' to

 *  TRUE to construct a modal dialog.

 */

Form1::Form1( QWidget* parent, const char* name, WFlags fl )

    : QWidget( parent, name, fl )

 

{

    if ( !name )

       setName( "Form1" );

 

    textLabel1 = new QLabel( this, "textLabel1" );

    textLabel1->setGeometry( QRect( 60, 60, 380, 50 ) );

    languageChange();

    resize( QSize(497, 314).expandedTo(minimumSizeHint()) );

 

 

       timer_thread=new QTimer(this);

       connect(timer_thread,SIGNAL(timeout()),SLOT(initthread()));

       timer_thread->start(500,true);

 

 

       timer=new QTimer(this);

       connect(timer,SIGNAL(timeout()),SLOT(ontimer()));

       timer->start(500,false);

 

 

}

 

/*

 *  Destroys the object and frees any allocated resources

 */

Form1::~Form1()

{

    // no need to delete child widgets, Qt does it all for us

}

 

/*

 *  Sets the strings of the subwidgets using the current

 *  language.

 */

void Form1::languageChange()

{

    setCaption( tr( "Form1" ) );

    textLabel1->setText( tr( "textLabel1" ) );

}

 

void Form1::ontimer()

{

//     while(1)

//     {

                 printf("\n Now in function ontimer.\n");

                 textLabel1->setText( tr(m_str) );

//     }

}

 

void * thread1(void * para)

{

 

       int sockfd, numbytes; 

    char buf[MAXDATASIZE];

    struct hostent *he;

    struct sockaddr_in their_addr; // connector's address information

 

       printf("\n Now in function thread1.\n");

 

    if ((he=gethostbyname("192.168.1.196")) == NULL) {  // get the host info

        perror("gethostbyname");

        exit(1);

    }

 

    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {

        perror("socket");

        exit(1);

    }

 

    their_addr.sin_family = AF_INET;    // host byte order

    their_addr.sin_port = htons(PORT);  // short, network byte order

    their_addr.sin_addr = *((struct in_addr *)he->h_addr);

    memset(&(their_addr.sin_zero), '\0', 8);  // zero the rest of the struct

 

    if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == -1) {

        perror("connect");

        exit(1);

    }

    while (1)

    {    memset(buf,0,sizeof(buf));

    if ((numbytes=recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1)

    {

        perror("recv");

        exit(1);

    }

 

 

    if (numbytes>0) {

    buf[numbytes] = '\0';

    printf("Received: %s\n",buf);

 

       sprintf(m_str,"%s",buf);

 

       }

    else

       break;

    }

    close(sockfd);

 

}

void Form1::initthread()

{

    pthread_t th_a;

       pthread_create(&th_a,NULL,thread1,NULL);

}

基本完成了,晚上把主函數(shù)寫出來就算是大功告成了,發(fā)現(xiàn)了幾個做工程好苗子,能吃苦,能鉆研,是老師們最喜歡的!!

聯(lián)系我們 | 關(guān)于我們 | 免責(zé)聲明 | 誠征英才 | 友情鏈接
Copyright 2019 All rights reserved  本網(wǎng)頁版權(quán)屬Open ADSP所有
北京海淀區(qū)中關(guān)村大街32號新中發(fā)市場3659 郵編100100
電話 18611096839 
粵ICP備14035876號-1