第8章_基于Socket和数据报编程的网络开发.ppt_第1页
第8章_基于Socket和数据报编程的网络开发.ppt_第2页
第8章_基于Socket和数据报编程的网络开发.ppt_第3页
第8章_基于Socket和数据报编程的网络开发.ppt_第4页
第8章_基于Socket和数据报编程的网络开发.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章基于Socket和数据报编程的网络开发,主讲教师:贾震斌,本章教学目标,了解基于TCP和UDP协议的概念及其在数据传输中的特点; 掌握Socket的概念及其在网络编程中的作用; 掌握Socket建立网络连接的过程和步骤,包括服务器端及客户端编程的步骤; 通过实例编程深化对Socket编程的理解。,8.1Socket和数据报概述,8.1.1TCP概述,TCP是一种面向连接的可靠的传输协议 TCP协议在传输过程中需要接收方确认成功接收数据,否则发送方会自动重发数据 TCP协议将数据分割成数据块依次传送 优点:可靠 缺点:传输速度较慢 基于TCP的协议有HTTP、FTP等,8.1.2UDP概述

2、,UDP协议是一种无连接的传输协议 UDP协议发送数据不需要接收方确认是否收到数据 UDP协议不保证数据块按发送次序到达接收方 优点:传输速度较快 缺点:不可靠,8.2Socket编程,什么是Socket,8.2.1ServerSocketConnection接口的使用,实现Socket服务器端程序的步骤: 1. 创建ServerSocketConnection连接: ServerSocketConnection ssc = (ServerSocketConnection) Connector.open(“socket:/:端口号); 2. 等待客户端连接: SocketConnection

3、sc = (SocketConnection) ssc.acceptAndOpen(); 3. 打开输入、输出数据流,以便服务器端与客户端之间可以传输数据: DataInputStream is = sc.openDataInputStream(); DataOutputStream os = sc.openDataOutputStream();,4. 接收、发送信息: String result = is.readUTF(); os.writeUTF(result) 5. 关闭各个对象 is.close(); os.close(); sc.close(); scc.close();,注意,无

4、论是服务器端还是客户端程序,为了在数据收发同时能进行其他操作,通常应使用多线程编程。 Class XIanCheng rctends Thread public void run() /此处是数据收发程序语句; ,8.2.2 SocketConnection接口的使用,实现Socket客户端的步骤: 建立连接: SocketConnection sc = (SocketConnection) Connector.open(“socket:/地址:端口号); 2.打开输入、输出数据流,以便服务器端与客户端之间可以传输数据: InputStream is = sc.openInputStream(

5、); OutputStream os = sc.openOutputStream();,例程说明,Accept.java Server.java 这两个类属于同一项目,协作合成Socket程序的服务器端功能,由于教材没有提供客户端功能,因此运行后不能真正实现通信功能。,利用PC机实现的服务器程序,教材p.149150的程序实现了一个运行在PC机上的J2SE程序,注意这个程序有main()方法,这是J2SE程序与J2ME程序的不同; 之所以要实现一个运行在PC机上的J2SE程序作为服务器端程序是为后面多客户端之间通信作准备,可以简化J2ME编程调试。,WTK提供的Socket源程序,WTK安装后

6、,在其子文件夹apps中提供了大量源程序样本,是J2ME编程的优秀范例, 而Socket源程序在appsNetworkDemosrcsocket文件中,可以通过导入项目的方法重建实例并运行。,8.2.3多客户端之间的通信,服务器端程序是运行在PC机上的J2SE程序 客户端程序是J2ME程序 主要是在理解服务器端程序的功能基础上,掌握客户端程序中引入的新类对象、方法功能,进而掌握Socket程序设计方法。,多客户端之间的通信程序的类,服务器程序: 服务器程序其功能本质上是一个中转站,从一个客户端接收数据又马上转发给另一个客户端,对于服务器程序来说有多少个客户端与它连接就有多少个线程在运行。,说明,以上步骤更多说明可以参见WTK中docsapimidpindex.html,习题,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论