![嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/55345f52-a6ec-4710-8991-a3b5a756ed91/55345f52-a6ec-4710-8991-a3b5a756ed911.gif)
![嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/55345f52-a6ec-4710-8991-a3b5a756ed91/55345f52-a6ec-4710-8991-a3b5a756ed912.gif)
![嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/55345f52-a6ec-4710-8991-a3b5a756ed91/55345f52-a6ec-4710-8991-a3b5a756ed913.gif)
![嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/55345f52-a6ec-4710-8991-a3b5a756ed91/55345f52-a6ec-4710-8991-a3b5a756ed914.gif)
![嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用-課程設(shè)計(jì)報(bào)告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/55345f52-a6ec-4710-8991-a3b5a756ed91/55345f52-a6ec-4710-8991-a3b5a756ed915.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)買賣合同范文(2篇)
- 2025年度XX金融機(jī)構(gòu)與個(gè)人消費(fèi)貸款合同模板
- 2025年度影視制作項(xiàng)目投資居間合同
- 2025年度房地產(chǎn)掛靠合作建設(shè)合同范本
- 2025某項(xiàng)目某期景觀綠化工程施工合同
- 2025年度建筑勞務(wù)分包合同合同備案與登記流程
- 2025年度房地產(chǎn)項(xiàng)目施工監(jiān)理合同補(bǔ)充條款模板
- 2025年度建筑保溫材料研發(fā)與應(yīng)用采購合同
- 2025年度住房租賃市場租賃登記備案合同
- 2025年度綠色建筑節(jié)能改造承包合同
- 托育園老師培訓(xùn)
- 人教版八年級(jí)英語上冊(cè)Unit1-10完形填空閱讀理解專項(xiàng)訓(xùn)練
- 脊柱外科護(hù)理進(jìn)修心得
- 4.1中國特色社會(huì)主義進(jìn)入新時(shí)代+課件-2024-2025學(xué)年高中政治統(tǒng)編版必修一中國特色社會(huì)主義
- 護(hù)理工作中的人文關(guān)懷
- 完整液壓系統(tǒng)課件
- 2024年山東省青島市中考道德與法治試題卷(含答案及解析)
- 生產(chǎn)制造工藝流程規(guī)范與作業(yè)指導(dǎo)書
- 班級(jí)建設(shè)方案中等職業(yè)學(xué)校班主任能力大賽
- T-TJSG 001-2024 天津市社會(huì)組織社會(huì)工作專業(yè)人員薪酬指導(dǎo)方案
- 芯片設(shè)計(jì)基礎(chǔ)知識(shí)題庫100道及答案(完整版)
評(píng)論
0/150
提交評(píng)論