网络编程课程设计
《Linux/UNIX网络编程》
课程设计报告
题 目
班 级 姓 名 学 号 任课老师 完成时间
1 言序
1.1 背景
在网络越来越发达的今天,人们对网络的依赖越来越多,各种网络应用层出不穷,网络编程越来越受大广大程序员的重视。
网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。
网络聊天是网络编程的典型应用之一,编写网络聊天软件对于学习网络编程无疑有着很大的帮助。本小组就其登录功能进行了实现及优化,旨在通过软件的编写与实现,来提高对网络编程的理解和掌握。
1.2 相关技术
本示例以Servlet为例,演示Android与Servlet的通信。
众所周知,Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式。
1.2.1 HTTP协议简介:
HTTP (Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种协议。HTTP连接使用的是“请求—响应”的方式(2次握手),不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。而Socket连接在双方建立起连接后就可以直接进行数据的传输
1.2.2 HTTP协议的特点:
支持B/S及C/S模式;
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由Content-Type 加以标记;
无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
1.2.3 HTTP协议请求方法:
请求行中包括了请求方法,解释如下: GET 请求获取Request-URI 所标识的资源;
POST 在Request-URI 所标识的资源后附加新的数据;
2 程序设计与实现
2.1 需求分析
2.1.1 Android端(本人主要实现的是界面部分)
Android
端包括UI设计,以及与Web服务器端建立通信。
2.2.2 Web服务器端
Web服务器端包括Web界面设计,以及与Android端的通信。 实现在网页上注册之后,直接在手机上可以登录。
2.2 设计实现
2.2.1 Android端的实现
界面UI如下图所示:
3 测试结果
点击开始注册,跳转到如下页面
:
表明注册成功!
在手机端输入用户名,密码,如图:
登录成功。
4 总结
通过软件的编写与实现,提高了对网络编程的理解和掌握。
}d