(2.10)-JAVA语言程序设计(第十章 网络编程)_第1页
(2.10)-JAVA语言程序设计(第十章 网络编程)_第2页
(2.10)-JAVA语言程序设计(第十章 网络编程)_第3页
(2.10)-JAVA语言程序设计(第十章 网络编程)_第4页
(2.10)-JAVA语言程序设计(第十章 网络编程)_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

Java语言程序设计第十章网络编程10-1网络编程基础知识介绍1、计算机网络按照规模的分类2、OSI模型和TCP/IP协议模型3、IP地址和端口号1.计算机网络的分类局域网(LAN):指在一个较小地理范围内的各种计算机网络设备互连在一起的通信网络,可以包含一个或多个子网,通常局限在几千米的范围之内。城域网(MAN):主要由城域范围内的各局域网之间互连而构成的。广域网(WAN):是由相距较远的局域网或城域网互联而成,通常是除了计算机设备以外,还要涉及一些电信通信方式。2.OSI分层模型和TCP/IP分层模型应用层表示层会话层传输层网络层数据链路层物理层应用层传输层网络层链路层(网络接口层)TCP/IP分层模型OSI分层模型定义物理传输通道,是对网络连接设备的驱动协议将传输数据进行分组,把分组数据发送到目标计算机或网络。使网络程序进行通信。通信协议有:TCP和UDP。为网络中的各种应用提供服务。3.IP地址和端口号IP地址用于标志网络中的一个通信实体,这个通信实体可以是一台主机,也可以是一个打印机,或者是路由器的某一个端口。IP地址被分成了A、B、C、D、E五类。A类:10.0.0.0——10.255.255.255B类:172.16.0.0——172.31.255.255C类:192.168.0.0——192.168.255.255端口是一个16位的整数,用于表示数据交给哪个通信程序处理。因此,端口就是应用程序与外界交流的出入口,它是一宗抽象的软件结构,包括一些数据结构和I/O缓冲区。端口号可以从0到65535,通常被分为三类:公认端口:0

—1023;注册端口:1024—49151;动态/私有端口:49152—6553510-2

TCP协议网络编程(一)1、使用ServerSocket创建TCP服务端2、使用Socket创建客户端1.使用ServerSocket创建TCP服务端ServerSocketserver=newServerSocket(9999);Socketclient=server.accept();if(client!=null){

System.out.println("有客户端连接上来了!");}2.使用Socket创建TCP客户端Socketclient=newSocket("127.0.0.1",9999);3.TCP服务端优化ServerSocketserver=newServerSocket(9999);while(true){ Socketclient=server.accept(); if(client!=null){ System.out.println(“来自”+client.getInetAddress().getHostAddress() +"的客户端已成功连接!"); }}10-3TCP协议网络编程(二)1、服务端和客户端对话1.系统运行效果图2.Server.javaOutputStreamos=client.getOutputStream();PrintWriterpw=……;pw.println(sendMsg);pw.flush();InputStreamis=client.getInputStream();BufferedReaderreader=……;StringrecMsg=reader.readLine();System.out.println("客户端说:"+recMsg);3.Client.javaInputStreamis=client.getInputStream();BufferedReaderreader=……;StringrecMsg=reader.readLine();System.out.println("服务端说:"+recMsg);OutputStreamos=client.getOutputStream();PrintWriterpw=……;pw.println(sendMsg);pw.flush();10-4TCP协议网络编程(三)1、服务端和客户端能够自由对话1.上一节课系统运行存在的问题2.ReaderThread.javapublicvoidrun(){do{ StringrecMsg=reader.readLine(); System.out.println("对方说:"+recMsg);

flag="byebye".equals(recMsg)?false:true;}while(flag);socket.shutdownInput();3.WriterThread.javapublicvoidrun(){ do{ StringsendMsg=input.next(); pw.println(sendMsg);pw.flush();

flag="byebye".equals(sendMsg)?false:true; }while(flag);

socket.shutdownOutput();10-5TCP协议网络编程(四)1、关闭Socket对象,回收内存1.上一节课系统运行存在的问题虽然说socket对象的输入和输出流都已经关闭了,但是socket仍然存在,这样势必造成服务器资源浪费。因此需要采取措施,当socket确定不再进行通信时,通过close方法将其关闭2.ServerScanThread.javapublicclassServerScannerThreadextendsThread{ publicstaticList<Socket>socketList=newLinkedList<Socket>(); publicServerScannerThread(){

setDaemon(true); start();

}3.ServerScanThread.javapublicvoidrun(){ while(true){ while(socketList==null||socketList.size()<=0){Thread.sleep(10000);} for(inti=0;i<socketList.size();i++){ Socketsocket=socketList.get(i); if(socket.isInputShutdown()&&socket.isOutputShutdown()){ socket.close();

socketList.remove(i);

}} Thread.sleep(5000);//每隔5秒扫描一次10-6UDP协议网络编程1、什么是UDP协议2、基于UDP协议的网络编程1.UDP协议基础UDP协议是英文UserDatagramProtocol的缩写UDP协议是一种面向非连接的协议UDP适用场景2.DatagramSocketDatagramSocket()DatagramSocket(intport)DatagramSocket(intport,InetAddressladdr)receive(DatagramPacketpacket):从该DatagramSocket中接收数据报send(DatagramPacketpacket):以该DatagramSocket对象向外发送数据报3.DatagramPacketDatagramPacket(byte[]buf,intlenth)DatagramPacket(byte[]buf,intlenth,InetAddressaddr,intport)DatagramPacket(byte[]buf,intoffset,intlenth)DatagramPacket(byte[]buf,intoffset,intlenth,InetAddressaddr,

intport)4.系统实现DatagramSocketsocketA=newDatagramSocket(9999);DatagramPacketpacket=newDatagramPacket(buf,length,IP,port);socketA.send(packet)DatagramPacketpacket=newDatagramPacket(buf,length);socketA.receive(packet)10-1网络编程基础知识介绍1、计算机网络按照规模的分类2、OSI模型和TCP/IP协议模型3、IP地址和端口号10-2

TCP协议网络编程(

温馨提示

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

评论

0/150

提交评论