上海婦科疾病研究所 上海女性不孕醫(yī)院 上海引產(chǎn)醫(yī)院 無痛引產(chǎn)痛不痛 上海人流醫(yī)院 白癜風治療醫(yī)院 上海小兒腦癱醫(yī)院 上海女子醫(yī)院
盗墓笔记第二季,小说改编的网页游戏,古风小说 君子以泽

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

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

基于balckfin架構(gòu)下的socket通信-服務(wù)器端程序設(shè)計,昨晚新鮮出爐。。。。

我們將PC機作為服務(wù)端,balckfin作為客戶端。在服務(wù)器上編寫TCPServer(語言為C++),編寫完畢后編譯、生成可執(zhí)行文件TCPServer.exe。在客戶端,我們先在PC機上在ucLINUX系統(tǒng)下寫好代碼,然后通過交叉編譯環(huán)境GCC交叉編譯,最后將其掛載到balckfin上。

發(fā)送方的工作流程為:首先初始化Winsock庫,創(chuàng)建套接字,綁定套接字到一個本地地址,然后進入監(jiān)聽模式,當接收到一個連接,經(jīng)過確認后,即開始發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送完畢后關(guān)閉套接字。

接收方的工作流程為:在新的文件傳送過程建立后,讀取最先收到的數(shù)據(jù)并且保存,它是待接收文件的數(shù)據(jù)字節(jié)數(shù);然后判斷可讀取的數(shù)據(jù)字節(jié)數(shù)是否已經(jīng)達到文件的數(shù)據(jù)字節(jié)數(shù),如果未達到則繼續(xù)等待,直到收到全部文件數(shù)據(jù)后才讀取出Winsock中的數(shù)據(jù),進行處理。

 

在balckfin上我們使用Qtopia的解決方案。Qtopia 是Trolltech 公司為采用嵌入式ucLinux 操作系統(tǒng)的消費電子設(shè)備而開發(fā)的綜合應(yīng)用平臺, Qtopia包含完整的應(yīng)用層、靈活的用戶界面、窗口操作系統(tǒng)、應(yīng)用程序啟動程序以及開發(fā)框架。

// TCPServer.cpp文件

 

 

#include "../skts/InitSock.h"

#include <stdio.h>

#include <conio.h>

CInitSock initSock;          // 初始化Winsock庫

 

int main()

{

       // 創(chuàng)建套接字

       SOCKET sListen = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

       if(sListen == INVALID_SOCKET)

       {

              printf("Failed socket() \n");

              return 0;

       }

      

       // 填充sockaddr_in結(jié)構(gòu)

       sockaddr_in sin;

       sin.sin_family = AF_INET;

       sin.sin_port = htons(3490);

       sin.sin_addr.S_un.S_addr = inet_addr("192.168.1.196");

      

       // 綁定這個套接字到一個本地地址

       if(::bind(sListen, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)

       {

              printf("Failed bind() \n");

              return 0;

       }

      

       // 進入監(jiān)聽模式

       if(::listen(sListen, 2) == SOCKET_ERROR)

       {

              printf("Failed listen() \n");

              return 0;

       }

      

       // 循環(huán)接受客戶的連接請求

       sockaddr_in remoteAddr;

       int nAddrLen = sizeof(remoteAddr);

       SOCKET sClient;

       char szText[256] = "TCP Server Demo!";

       while(TRUE)

       {

              // 接受一個新連接

              sClient = ::accept(sListen, (SOCKADDR*)&remoteAddr, &nAddrLen);

              if(sClient == INVALID_SOCKET)

              {

                     printf("Failed accept()");

                     continue;

              }

             

              printf(" 接受到一個連接:%s \r\n", inet_ntoa(remoteAddr.sin_addr));

 

              int i=0;

              // 向客戶端發(fā)送數(shù)據(jù)

              while (TRUE)

              {

                     scanf("%s",szText);

              ::send(sClient, szText, strlen(szText), 0);

              printf("%d send:%s\n",++i,szText);

             

              if (szText[0]=='q')

                     break;

              }

              // 關(guān)閉同客戶端的連接

              ::closesocket(sClient);

//            getch();

//            break;

       }

             

       // 關(guān)閉監(jiān)聽套節(jié)字

       ::closesocket(sListen);

 

       return 0;

}

一晚上反復調(diào)試,其中建立連接,交換信息是關(guān)鍵,一晚上的成績 ,明天開始客戶端程序的設(shè)計了,呵呵。!

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