Java程序设计应用开发教程 教案-单元7.1 网络编程_第1页
Java程序设计应用开发教程 教案-单元7.1 网络编程_第2页
Java程序设计应用开发教程 教案-单元7.1 网络编程_第3页
Java程序设计应用开发教程 教案-单元7.1 网络编程_第4页
Java程序设计应用开发教程 教案-单元7.1 网络编程_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

教师备课纸课题单元7.1网络编程课型理实一体授课班级授课时数4教学目标了解IP地址和TCP协议。理解InetAddress类。熟悉Socket类。能使用Socket套接字与I/O输入输出流进行数据传输。教学重点Socket类ServerSocket类教学难点使用Socket套接字与I/O输入输出流进行数据传输,解决实际问题。学情分析教学效果教后记单元任务7.1单用户登录任务描述:用户登录KFID自动出货管理系统,需要在服务器与客户端之间进行通信,效果如图7-1所示。当第一个客户(即用户)登录系统时,从客户端发起登录请求,客户端将数据传递到服务器,由服务器显示用户登录信息,并响应给客户端登录信息的情况;当第一个客户与服务器进行通信时,其他客户必须等待,只有第一个客户退出,服务器才能与下一个客户进行通信,以此类推。图7-1单用户登录相关知识1.IP地址当一台计算机向另一台计算机通信时,需要知道另一台计算机的地址。互联网协议(InternetProtocol,简称:IP)地址可以用来唯一标识互联网上的计算机。IP地址就好像门牌号码,可以指定特定的地方,就像是“致能大道1号”。IP地址有两种分类方式:IPV4和IPV6。2.TCP协议互联网协议是在互联网中从一台计算机向另一台计算机以包的形式传输数据的一种低层协议。TCP协议能够让两台主机建立连接并交换数据流。它确保数据的传送,也可确保数据包以它们发送的顺序传送。TCP端口是一个16位的整数,用来指定正在计算机上运行的进程(或程序),也就是表示数据信息由哪个程序的服务器处理,它能够让用户连接到服务器上各种不同的应用程序。不同的进程有不同的端口号,端口号可以从0~65535,从0~1023的端口号是保留给HTTP、FTP、SMTP等。如网页服务器(HTTP)的端口号是80,3.InetAddress类InetAddress类是Java对IP地址的封装,在中有许多类都使用到了InetAddress,包括ServerSocket,Socket等等。1.获取本地主机的域名与IP地址。InetAddressinetAddr=null;//创建一个InetAddress对象try{inetAddr=InetAddress.getLocalHost();//实例化InetAddress对象Stringcanonical=inetAddr.getCanonicalHostName();//获得本地主机的域名StringhostName=inetAddr.getHostName();//获得主机名Stringaddress=inetAddr.getHostAddress();//获得本机的IP地址System.out.println("域名:"+canonical);System.out.println("主机名:"+hostName);System.out.println("IP地址:"+address);}catch(Exceptione){e.printStackTrace();}4.Socket类.Socket类代表客户端和服务器都用来互相沟通的套接字。客户端要获取一个Socket对象通过实例化,而服务器获得一个Socket对象则通过accept()方法的返回值。Socket类构造方法publicSocket(Stringhost,intport)throwsUnknownHostException,IOExceptionpublicSocket(InetAddresshost,intport)throwsIOExceptionpublicSocket(Stringhost,intport,InetAddresslocalAddress,intlocalPort)throwsIOExceptionpublicSocket(InetAddresshost,intport,InetAddresslocalAddress,intlocalPort)throwsIOExceptionpublicSocket()Socket类的常用方法publicvoidconnect(SocketAddresshost,inttimeout)throwsIOExceptionpublicintgetPort()publicInputStreamgetInputStream()throwsIOExceptionpublicOutputStreamgetOutputStream()throwsIOExceptionServerSocket类服务器应用程序通过使用.ServerSocket类以获取一个端口,并且侦听客户端请求。ServerSocket类构造方法publicServerSocket(intport)throwsIOExceptionpublicServerSocket(intport,intbacklog)throwsIOExceptionpublicServerSocket()throwsIOExceptionServerSocket类常用方法publicSocketaccept()throwsIOExceptionpublicintgetLocalPort()使用Socket实现网络通信要使客户端能够正常工作,必须要做好3个任务:①连接:建立socket连接来连接服务器。②传送:用户发送信息到服务器。③接受:用户从服务器接受信息。编写一个客户端程序和一个服务器程序,服务器端只向客户端输出“Helloworld”。分析:服务器程序(HelloServer.java)第一步:声明一个ServerSocket对象,声明一个PrintWriter对象,用于向客户端打印输出。ServerSocketserversocket=null;PrintWriterout=null;第二步:实例化ServerSocket对象,在9999端口进行监听。serversocket=newServerSocket(9999);第三步:声明一个Socket对象clientsocket,此对象用于接收客户端的Socket连接。然后通过ServerSocket类中的accept()方法,接收客户端的Socket请求,此方法返回一个客户端的Socket请求。clientsocket=serversocket.accept();第四步:通过客户端的Socket对象去实例化PrintWriter对象,此时out对象具备向客户端打印信息的能力。调用println()方法,将信息打印至客户端。out=newPrintWriter(clientsocket.getOutputStream(),true);out.println("Helloworld");第五步:分别关闭客户端Socket连接,服务器端Socket连接。clientsocket.close();serversocket.close();客户端程序(HelloClient.java)第一步:声明一个Socket对象,声明一个BufferedReader对象in,此对象用于读取服务器发送过来的数据。Sockethellosocket=null;BufferedReaderin=null;第二步:用输入输出流与Socket关联。首先实例化hellosocket对象,此连接在本机的9999端口上监听。然后通过hellosocket对象实例化BufferedReader对象。hellosocket=newSocket("localhost",9999);in=newBufferedReader(newInputStreamReader(hellosocket.getInputStream()));第三步:等待服务器端发送过来的信息并打印。System.out.println(in.readLine());第四步:关闭BufferedReader对象;关闭Socket对象。in.close();hellosocket.close();单元任务分析与实施(1)定义用户信息类User,实例化传送对象。(2)服务器程序的实现。首先建立连接并监听端口,使用accept()方法

温馨提示

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

评论

0/150

提交评论