嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第1頁
嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第2頁
嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第3頁
嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第4頁
嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、仰恩大學(xué)計(jì)算機(jī)與信息學(xué)院 課題設(shè)計(jì)報(bào)告嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用課程設(shè)計(jì)報(bào)告專 業(yè): 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 目 錄一、設(shè)計(jì)目的3二、開發(fā)環(huán)境3三、設(shè)計(jì)任務(wù)及要求3四、實(shí)現(xiàn)過程34.1用戶應(yīng)用程序設(shè)計(jì)34.2服務(wù)器端程序34.3客戶端程序54.3 編譯與運(yùn)行結(jié)果7五、總結(jié)7一、設(shè)計(jì)目的(1)、熟悉并掌握在Linux開發(fā)環(huán)境下C語言程序設(shè)計(jì)及編譯方法、嵌入式系統(tǒng);(2)、掌握嵌入式linux下基礎(chǔ)網(wǎng)絡(luò)編程:socket編程(3)、獨(dú)立編寫客戶機(jī)/服務(wù)器通信程序;二、開發(fā)環(huán)境(1) 編程環(huán)境:在Linux開發(fā)環(huán)境下設(shè)計(jì)及編譯C語言程序。(2) 硬件設(shè)備:PXA270開發(fā)板,PC機(jī)。三、

2、設(shè)計(jì)任務(wù)及要求設(shè)計(jì)一套可遠(yuǎn)程調(diào)用求和函數(shù)并返回客戶端的程序。四、實(shí)現(xiàn)過程4.1用戶應(yīng)用程序設(shè)計(jì)1.程序sum.hint sum();2.程序sum.c#include <stdio.h>int sum()int i=1,sum=0; while(i<=100) sum=sum+i; i+; return sum;4.2服務(wù)器端程序/* 服務(wù)器端程序 server.c * */ #include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <stdlib.

3、h>#include <errno.h>#include <string.h>#include <unistd.h>#include <netinet/in.h>#include “sum.h”main() int sockfd,new_fd,numbytes; struct sockaddr_in my_addr; struct sockaddr_in their_addr; int sin_size,sum; char buff100 ,temp100; sum=sum();itoa(sum, temp, 10); /服務(wù)器端建立TCP

4、協(xié)議的socked套接字描述符 if(sockfd = socket(AF_INET,SOCK_STREAM,0)=-1) perror("socket"); exit(1); printf("socket success!,sockfd=%dn",sockfd); /服務(wù)器端初始化sockaddr結(jié)構(gòu)體,綁定2323端口 my_addr.sin_family = AF_INET; my_addr.sin_port = htons(2323); my_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(my_ad

5、dr.sin_zero),8); /綁定套接字描述符sockfd if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr)=-1) perror("bind"); exit(1); printf("bind success!n"); /創(chuàng)建監(jiān)聽套接字描述符sockfd if(listen(sockfd,10)=-1) perror("listen"); exit(1); printf("listening.n"); /服務(wù)器阻塞監(jiān)聽

6、套接字,循環(huán)等待客戶端程序連接 while(1) sin_size = sizeof(struct sockaddr_in); /如果建立連接,將產(chǎn)生一個(gè)全新的套接字 if(new_fd = accept(sockfd,(struct sockaddr *)&their_addr,&sin_size)=-1) perror("accept"); exit(1); /生成一個(gè)子進(jìn)程來完成和客戶端的會(huì)話,父進(jìn)程繼續(xù)監(jiān)聽 if(!fork() /讀取客戶端發(fā)來的信息 if(numbytes = recv(new_fd,buff,strlen(buff),0)=-1

7、) perror("recv"); exit(1); /將從客戶端接收到的信息再發(fā)回客戶端 if(send(new_fd,temp,strlen(buff),0)=-1) perror("send"); /* 本次通信結(jié)束 */ close(new_fd); exit(0); /* 下一個(gè)循環(huán) */ / close(new_fd); close(sockfd); 4.3客戶端程序/* 客戶端程序 client.c * */ #include <stdio.h>#include <stdlib.h>#include <errn

8、o.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>int main(int argc,char *argv) int sockfd,numbytes; char buf100; struct hostent *he; struct sockaddr_in their_addr; int i = 0; /轉(zhuǎn)換主機(jī)名或IP地址 he = gethostbyname(a

9、rgv1); /客戶端程序建立TCP協(xié)議的socked套接字描述符 if(sockfd = socket(AF_INET,SOCK_STREAM,0)=-1) perror("socket"); exit(1); /客戶端程序初始化sockaddr結(jié)構(gòu)體,連接到服務(wù)器的2323端口 their_addr.sin_family = AF_INET; their_addr.sin_port = htons(2323); their_addr.sin_addr = *(struct in_addr *)he->h_addr); bzero(&(their_addr.

10、sin_zero),8); /向服務(wù)器發(fā)起連接 if(connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr)=-1) perror("connect"); exit(1); /向服務(wù)器發(fā)送字符串"hello!" if(send(sockfd,"Hello! I am Client.",100,0)=-1) perror("send"); exit(1); /接受從服務(wù)器返回的信息 if(numbytes = recv(soc

11、kfd,buf,100,0)=-1) perror("recv"); exit(1); printf("result: %s n",buf); /* 通信結(jié)束 */ close(sockfd); return 0; 4.3 編譯與運(yùn)行結(jié)果 (1)、編譯客戶端文件、服務(wù)器端文件 # gcc client.c -o client.o# arm-linux-gcc server.c sum.c -o server.o (2)、連接串口線和網(wǎng)線(3)、把server.o下載到開發(fā)板中 (4)、在開發(fā)板上運(yùn)行服務(wù)器端程序 # ./server.osocket success! Sockfd=3;bind success;Listening.Hello!I am Client. (5)、在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論