版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、仰恩大学计算机与信息学院 课题设计报告嵌入式系统设计与应用课程设计报告专 业: 班 级: 姓 名: 学 号: 指导教师: 目 录一、设计目的3二、开发环境3三、设计任务及要求3四、实现过程34.1用户应用程序设计34.2服务器端程序34.3客户端程序54.3 编译与运行结果7五、总结7一、设计目的(1)、熟悉并掌握在Linux开发环境下C语言程序设计及编译方法、嵌入式系统;(2)、掌握嵌入式linux下基础网络编程:socket编程(3)、独立编写客户机/服务器通信程序;二、开发环境(1) 编程环境:在Linux开发环境下设计及编译C语言程序。(2) 硬件设备:PXA270开发板,PC机。三、
2、设计任务及要求设计一套可远程调用求和函数并返回客户端的程序。四、实现过程4.1用户应用程序设计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服务器端程序/* 服务器端程序 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); /服务器端建立TCP
4、协议的socked套接字描述符 if(sockfd = socket(AF_INET,SOCK_STREAM,0)=-1) perror("socket"); exit(1); printf("socket success!,sockfd=%dn",sockfd); /服务器端初始化sockaddr结构体,绑定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"); /创建监听套接字描述符sockfd if(listen(sockfd,10)=-1) perror("listen"); exit(1); printf("listening.n"); /服务器阻塞监听
6、套接字,循环等待客户端程序连接 while(1) sin_size = sizeof(struct sockaddr_in); /如果建立连接,将产生一个全新的套接字 if(new_fd = accept(sockfd,(struct sockaddr *)&their_addr,&sin_size)=-1) perror("accept"); exit(1); /生成一个子进程来完成和客户端的会话,父进程继续监听 if(!fork() /读取客户端发来的信息 if(numbytes = recv(new_fd,buff,strlen(buff),0)=-1
7、) perror("recv"); exit(1); /将从客户端接收到的信息再发回客户端 if(send(new_fd,temp,strlen(buff),0)=-1) perror("send"); /* 本次通信结束 */ close(new_fd); exit(0); /* 下一个循环 */ / 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; /转换主机名或IP地址 he = gethostbyname(a
9、rgv1); /客户端程序建立TCP协议的socked套接字描述符 if(sockfd = socket(AF_INET,SOCK_STREAM,0)=-1) perror("socket"); exit(1); /客户端程序初始化sockaddr结构体,连接到服务器的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); /向服务器发起连接 if(connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr)=-1) perror("connect"); exit(1); /向服务器发送字符串"hello!" if(send(sockfd,"Hello! I am Client.",100,0)=-1) perror("send"); exit(1); /接受从服务器返回的信息 if(numbytes = recv(soc
11、kfd,buf,100,0)=-1) perror("recv"); exit(1); printf("result: %s n",buf); /* 通信结束 */ close(sockfd); return 0; 4.3 编译与运行结果 (1)、编译客户端文件、服务器端文件 # gcc client.c -o client.o# arm-linux-gcc server.c sum.c -o server.o (2)、连接串口线和网线(3)、把server.o下载到开发板中 (4)、在开发板上运行服务器端程序 # ./server.osocket success! Sockfd=3;bind success;Listening.Hello!I am Client. (5)、在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租赁保证金退还申请信函(3篇)
- 员工工作压力过大预警管理预案
- 会议场地借用申请函书写规范(7篇)
- 通知关于新产品推广计划的通告4篇
- 服务质量控制更新告知函(3篇)
- Wellsenn+XR季度跟踪报告-VR AR AI智能眼镜产业销售量跟踪系列报告 2026 Q2
- 2025年南充市营山县招募社会工作服务岗位人员笔试真题
- 2025年济南市钢城区昌隆文旅发展有限公司招聘笔试真题
- 玩具电池安全问题召回处理函(4篇范文)
- 电力行业电站运行维护安全KPI考核表
- 2025年福建省机关事业单位工勤人员技能等级考试及答案(行政事务人员技师)
- 新东方在线教育培训营销策略研究
- 安全生产四级控制目标是什么
- 施工中暑事故应急处置方案
- 2025年甘肃省白银市会宁县缩减城区义务段教师选调岗位笔试备考试题及答案解析
- GJB2489A2023航空机载设备履历本及产品合格证编制要求
- 要素式强制执行申请书(申请执行用)
- 2025年中邮资产管理公司招聘笔试备考题库(带答案详解)
- 学堂在线 新闻摄影 期末考试答案
- 唐山市城市规划管理技术指南
- 登革热防控知识培训
评论
0/150
提交评论