Java网络编程简介.ppt
《Java网络编程简介.ppt》由会员分享,可在线阅读,更多相关《Java网络编程简介.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1Java网络编程2Java与网络nJava语言取得成功的领域之一就是网络n (其他语言)数页代码-(Java)一条语句nTCP/IP(传输控制协议/网间协议)是internet的主要协议,定义了计算机和外设进行通信所使用的规则(应用层,传输层,网络层,链路层).n大多数基于internet的应用程序被看作TCP/IP协议的上一层.如:ftp,http,smtp,pop3,telnet,nntp等nIP地址:TCP/IP网络中的每台计算机都有唯一的地址-IP地址.n在Java中,有一个用来存储internet地址的类叫InetAddress.3网络层次n4层网络结构:4传输层的两个基本协议n1
2、 TCP协议:确保以发送时的顺序接受,丢包重新传递,数据对于连接太快TCP会调整速度等n2UDP协议:允许接受方检测被破坏的包,不保证这些包正确的顺序传输。实时的音频或视频应用程序经常使用。如果UDP有纠错功能一般由应用层来实现,如TFTP等。UDP本身没有此功能5Java网络编程nJava的网络编程是建立在传输层之上的,我们可以创建自己的应用层协议。Java仅支持TCP和UDP。(ICMP不支持)nJava已经给我们提供好了基于传输层协议的类(Stream Socket和 Datagram Socket)nJava不能直接发IP数据包6TCP协议的实现nSocket是实现TCP协议的基本工具
3、,Socket对程序员掩盖了网络底层实现的细节。如:纠错,重传,网络地址等nSocket是网络上运行的程序之间双向通信链路的最后终结点nIP与端口的组合得出一个套接字,可以完全分辨internet上运行的程序7Socket概念n端口号:TCP/IP协议为每种服务定义了一个端口,当一台计算机上运行不同服务器程序时,根据端口号不同提供相应的服务.n端口号不是计算机上的物理连接器,它只是具有软件意义的假想端口internet服务服务端口号端口号端口号端口号internet服务服务telnet 23 nntp 119ftp 21 www 80DNS 53 POP3 1108Socket的功能n1连接远
4、程机器n2发送数据n3接受数据n4关闭连接n5绑定端口n6监听入站数据n7在所绑定得端口上接受来自远程的连接9Socket类nSocket类用代码通过主机操作系统的本地TCP栈进行通信。nSocket为用户提供的接口是流。10Socket类n ClientSocket(host,port#)Attempt the connectionOutputStreamInputStreamClose SocketServerServerSocket(port#)Server Socket.accept()Socket()OutputStreamInputStreamClose Socket11Socke
5、t类(续)n程序员只需把传输内容转化为流12客户端Socketn构造函数:npublic Socket(String host,int port)throws unknownHostException,IOExceptionnSocket socket=new Socket(“time.nist.gov”,80);n含义:n1 创建一个socket对象n2尝试连接主机主机名不存在或服务器没运行unknownHostException其他原因抛:IOException13客户端Socket(续)检查主机检查主机1024个端口哪些提供了个端口哪些提供了TCP服务服务public class Por
6、tsScannerString host=“localhost”;for(int i=1;i0)hostname=args0;try Socket socket=new Socket(hostName,13)InputStream timeStream=theSocket.getInputStream();StringBuffer time=new StringBuffer();int c;while(c=timeStream.read()!=-1)time.append(char)c);String timeString=time.toString().trim();System.out.p
7、rintln(timeString);catch(.).运行命令运行命令:java Daytime client time.nist.gov 运行结果:运行结果:Sun Oct 28 11:05:15 200716客户端Socket(续)nSocket使用之后要注意关掉.一般来说socket确实会在两个流的一个关闭后或在被垃圾回收时自动关闭。但是对于敏感的程序,在垃圾回收介入之前,系统会很快到达能打开的socket上限。尤其是跟很多硬件设备打交道的软件系统。17客户端Socket(续)try Socket connection=null;connection=new Socket(“time.
8、nist.gov”,13);/与与socket交互交互catch(UnknownHostException ex)System.err.println(ex);catch(IOException ex)System.err.println(ex);finally if(connection!=null)connection.close();18半关闭Socket close()方法同时关闭Socket的输入和输出n但JDK提供了shutdownInput()和shutdownOutput的方法19Socket异常nBindException没有权限使用Socket,想使用的端口被别的应用占用n
9、ConnectException主机忙或没有监听该端口的进程nNoRouteHostException表示连接超时nProtocolException表示网络接受的数据违反TCP/IP规范20ServerSocketn服务器Socket等待连接而客户端Socket发起连接。一旦ServerSocket建立起来连接,服务器就是用一个正常的Socket对客户端发送数据。21ServerSocket基本流程22ServerSocket的构造函数n构造函数:npublic ServerSocket(int port)throws BindException,IOExceptionnServerSock
10、et socket=new ServerSocket(80);n含义:创建一个server socket对象,服务的端口是80,如果port设为0或者null Java会随机选一个未占用的portn如果端口已经被其他应用程序占用抛出BindException23ServerSocket的构造函数(续)npublic ServerSocket(int port,int queueLength)throws BindException,IOExceptionnQueue表示入站连接请求队列的长度,这个长度必须小于操作系统所允许的最大长度npublic ServerSocket()throws IO
11、Exceptionn没有端口创建是没有意义的,因为客户端不知道如何连接过去nServerSocket ss=new ServerSocket();nSocketAddress http=new InetSocketAddress(80);nss.bind(http);24ServerSocket的监听方法naccept()监听客户端的连接。在未连接的时候accept()是阻塞的,他会停止执行流并等待25简单的日期时间服务器while(true)try Socket connection=null;connection=server.accept();Write out=new OutPutSt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 网络 编程 简介
限制150内