第十一章Java网络编程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第十一章Java网络编程.ppt》由会员分享,可在线阅读,更多相关《第十一章Java网络编程.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第十一章第十一章 Java网络编程网络编程南京农业大学南京农业大学谢忠红谢忠红n11.1 Java和和Internet 11.2 Socket-编程编程n11.3 URL类类n11.4 Datagram(数据报数据报)11.1 Java和和Internetn网络定义:网络定义:将分布在不同地理区域的计算机用通信线路互联起来的一个具有强大功能的网络系统网网络络协协议议nInternt提供的服务包括www(World-Wid Web)服务、电子邮件(E-mail)服务、文件传输(FTP)服务和远程登陆(Telnet)服务等网络协议网络协议A网络协议网络协议BTCP/IP协议协议TCP/IP协议协
2、议不同网络之间的互联考完标准语言不同网络之间的互联考完标准语言TCP/IP协议协议nTCP/IP(传输控制协议传输控制协议/网间协议网间协议):internet的主要的主要n协议协议,定义了计算机和外设进行通信所使用的规则定义了计算机和外设进行通信所使用的规则(应用应用n层层,传输层传输层,网络层网络层,链路层链路层).目前最流行的商业化协议目前最流行的商业化协议TCP/IP协议协议(传输控制协议传输控制协议/网间协议网间协议)FTP(文件传输协议文件传输协议):允许网络传输文件允许网络传输文件TELNET(虚拟终端协议虚拟终端协议):允许主机允许主机A远程登远程登录主机录主机BHTTP(超文
3、本传输协议超文本传输协议):允许网络上传输允许网络上传输超文本超文本POP3(邮局协议邮局协议-版本版本3):允许客户程序访允许客户程序访问在远程服务器上的电子邮件问在远程服务器上的电子邮件SMTP(简单邮件传输协议简单邮件传输协议):发送电子邮件发送电子邮件的协议的协议n网络的一些重要术语网络的一些重要术语nDNS(域名服务器域名服务器)n例:例:nIP地址地址:TCP/IP网络中的每台计算机都有唯一网络中的每台计算机都有唯一的地址的地址-IP地址地址.n 例例202.199.28.6 Socket,URL,Datagramn nSocketSocketSocketSocket是传统网络程序
4、最常用的方式是传统网络程序最常用的方式,可以想象为可以想象为两个不同的程序通过网络的通信信道两个不同的程序通过网络的通信信道.(TCP/IPTCP/IP)n nURLURLURLURL(uniform uniform uniform uniform ResouseResouseResouseResouse Location Location Location Location)是三大功能中是三大功能中最高级的一种最高级的一种,通过通过URL JavaURL Java程序可以使用程序可以使用httphttp、filefile、ftpftp等协议,获取远端计算机上的资源信息,等协议,获取远端计算机
5、上的资源信息,方便快捷地开发方便快捷地开发InternetInternet应用程序应用程序n nDatagramDatagramDatagramDatagram更低级的网络传输方式更低级的网络传输方式,它把数据的目的它把数据的目的地址在写在数据包中地址在写在数据包中,然后将数据包放在网络上然后将数据包放在网络上.(.(UDP)UDP)n .InetAddress类类n作用:作用:存储服务器的存储服务器的IP地址地址,提供一系列静态工提供一系列静态工厂方法。厂方法。n常见方法:常见方法:n(1)InetAddress getLocalHost()n作用:作用:返回本机地址(机器名返回本机地址(机
6、器名+IP)n(2)InetAddress getByName(String )n作用:作用:给定计算机名给定计算机名/域名域名,返回该机的地址。返回该机的地址。n(3)String getHostAdress()n作用:作用:返回本机返回本机IP地址地址 InetAddressn举例举例1:import .*;public class getLocalHostTest n public static void main(String args)n InetAddress myIP1=null,myIP2=nulln try n myIP1=InetAddress.getLocalHost()
7、;n myIP2=InetAddress.getByName(xzh);n catch(UnknownHostException e)n System.out.println(e.toString();n System.out.println(myIP1=+myIP1.toString();n System.out.println(myIP2=+myIP2.toString();n myIP1=LENOVO-A5267B58/192.168.1.100myIP2=LENOVO-A5267B58/192.168.1.100例例2nimport .*;npublic class getIPn pu
8、blic static void main(String args)n InetAddress IP1=null,IP2=null;n try n n IP1=InetAddress.getByName ();n IP2=InetAddress.getAllByName ();n n catch(UnknownHostException e)n System.out.println(e.toString();n System.out.println(IP1.toString();n System.out.println(IP2.toString();n n11.2 Socket-套接字编程套接
9、字编程n服务器:服务器:运行提供服务的程序的计算机运行提供服务的程序的计算机n 侦听建立连接的请求侦听建立连接的请求n客户机:客户机:使用由服务器程序所提供的服务的计算机使用由服务器程序所提供的服务的计算机n 试着与某个服务器建立连接试着与某个服务器建立连接提供电子邮件提供电子邮件服务、服务、QQ聊聊天服务、天服务、MSN聊天服聊天服务、商务网站务、商务网站服务服务收发收发email浏览网页浏览网页收发收发email浏览网页浏览网页服务器客户机如何才能如何才能建立连接建立连接?Socket(套接字)套接字):连接的一个终端:连接的一个终端 Socket=IP+PortSocket的作用:分辨的
10、作用:分辨internet上运行各种服务程序上运行各种服务程序网络服务器网络服务器192.168.12.12Mailftpwww110telnet2123客户程序客户程序SocketIP,port80ServerSocket布满插口的插座板布满插口的插座板插头插头nPort(端口号端口号):TCP/IP协议为每种服务定义了协议为每种服务定义了一个端口。一个端口。n端口号的作用端口号的作用:当一台计算机上运行不同服务当一台计算机上运行不同服务器程序时器程序时,根据端口号不同提供相应的服务根据端口号不同提供相应的服务.n端口号范围:端口号范围:1-65535internet服务服务端口号端口号端口
11、号端口号internet服务服务telnet 23 nntp 119ftp 21 www 80DNS 53 POP3 110nJava的的Socket通信模式通信模式服务器服务器Ss=new ServerSocket(port#)s=Ss.accept()OutputStreamInputStreamSocket.close()ServerSocket.close()客户端客户端new Socket(host,port#)OutputStreamInputStreamSocket.close()Socket向服务器指定端口发出连接请求向服务器指定端口发出连接请求n2实现实现Socket通信通信
12、 ServerSocket类类(布满插口的服务器)(布满插口的服务器)Socket类(插头)类(插头)服务器程序服务器程序n客户端程序客户端程序Mailftpwww110telnet212380客户程序客户程序SocketIP,portnServerSocket类类n作用:作用:负责负责 接受客户连接请求接受客户连接请求n构造函数:构造函数:ServerSocket(int port )throws IOException ServerSocket(int port,int backlog)throws Exception backlog参数:参数:显示设置连接请求的队列长度,只显示设置连接请
13、求的队列长度,只要被加入到连接请求队列才可能与服务器连接成功要被加入到连接请求队列才可能与服务器连接成功nServerSocketServerSocket实例方法:实例方法:nSocket accept()n作用:作用:从连接队列中取一个客户机的连接请求,从连接队列中取一个客户机的连接请求,创建一个与客户连接的创建一个与客户连接的Socket对象对象nInetAddress getInetAddress()n作用:作用:返回服务器返回服务器 socket 的本地地址的本地地址 getLocalPort()n作用:作用:获得本连接的端口号获得本连接的端口号nclose()n作用:作用:使服务器释
14、放占用的端口并断开与所有客使服务器释放占用的端口并断开与所有客户进程的连接户进程的连接nSocket类类n构造函数:构造函数:nSocket(String host,int port)n throws unknownHostException,IOExceptionn作用:作用:试图建立与服务器的连接,如果连接成功返试图建立与服务器的连接,如果连接成功返回一个回一个Socket对象对象n客户连接服务器时可能抛出的异常客户连接服务器时可能抛出的异常nUnknownHostException:无法识别主机名字或无法识别主机名字或IP地址地址nConnectException:服务器进程拒绝连接,或
15、没有服务器服务器进程拒绝连接,或没有服务器 n 进程监听制定端口进程监听制定端口nSocketTimeoutException:等待连接超时等待连接超时nBindException:无法把无法把Socket对象与指定的本地对象与指定的本地IP地址地址n 或或port绑定绑定n实例方法实例方法npublic InetAddress getInetAddress()n作用:作用:返回远程服务器的地址。返回远程服务器的地址。n public InetAddress getLocalAddress()作用:作用:获得客户本地的获得客户本地的IP地址地址npublic InputStream getIn
16、putStream()n作用:作用:获得输入流获得输入流nPublic OutputStream getOutputStream()n作用:作用:获得输出流获得输出流nPublic void close()n作用:作用:关闭关闭Socket连接连接程序举例n功能描述:服务器程序向客户机程序发功能描述:服务器程序向客户机程序发送字符串送字符串 “hi”“hi”服务器程序举例(服务器程序举例(p204)nimport .*;import java.io.*;public class Myservern public static void main(String args)n try Server
17、Socket serverS=new n ServerSocket(5432);n while(true)n Socket s=serverS.accept();n PrintStream out=new n PrintStream(s.getOutputStream();n out.println(hi);n out.close();s.close();n catch(IOException e)客户机程序举例客户机程序举例(p205)npublic class Myclientn public static void main(String args)n tryn Socket s=new
18、 Socket(127.0.0.1,5432);n BufferedReader in=new BufferedReader(new n InputStreamReader(s.getInputStream();n String x=in.readLine();n System.out.println(read from server:+x);n in.close();n catch(IOException e)read from server:hi3指定一协议编写客户指定一协议编写客户/服务器程序服务器程序程序功能:程序功能:演示一个简单的服务器与客户的交互演示一个简单的服务器与客户的交互即
19、服务器客户机相互通一次信息。即服务器客户机相互通一次信息。ServerSs=new ServerSocket(port#)Socket s=Ss.accept()OutputStreamInputStreamClose SocketClientnew Socket(host,port#)Attempt the connectionOutputStreamInputStreamClose SocketWaiting connecting requirementn服务器规则:服务器规则:n(1 1)向客户机发一个)向客户机发一个 “user:”“user:”。n(2 2)读取客户机提供的用户名。)
20、读取客户机提供的用户名。n(3 3)如果用户名)如果用户名=“=“lindalinda”发送发送“welcome!”welcome!”。n(4 4)如果用户名)如果用户名!=!=“lindalinda”发送发送 “wrong name”!“wrong name”!。n相应的客户机规则:相应的客户机规则:n(1 1)读取服务器反馈信息。)读取服务器反馈信息。n(2 2)若反馈信息是)若反馈信息是 “user:”,“user:”,则向服务器发送用户名则向服务器发送用户名并并n 执行(执行(3 3),若反馈信息不),若反馈信息不 “user:”“user:”退出。退出。n(3)(3)读取服务器反馈信
21、息。读取服务器反馈信息。n(4 4)若反馈信息是)若反馈信息是 “welcome”!“welcome”!则显示登陆成功信则显示登陆成功信息。息。n(5 5)若反馈信息是)若反馈信息是”wrong name!”wrong name!”则显示输入错误则显示输入错误用户名信息。用户名信息。n自定义协议规则自定义协议规则8.5 Socket.8.5 Socket创建服务器创建服务器(端口号端口号)定义数据成员定义数据成员服务器等待服务器等待网络连接网络连接建立建立socket流流读客户读客户 端信息端信息向用户发出一个字符串向用户发出一个字符串创建创建Socket实例实例定义数据成员定义数据成员建立建
22、立socket流流读读socket流流(接收并显示接收并显示)送用户名给送用户名给服务器服务器关闭流关闭流waiting for user127.0.0.1 11111111user:/otherconnetcting client.linda/other提示用户登录成功提示用户登录成功读读socket流流User:lindaWelcome!/wrong nameTry connecting服务器进程服务器进程 客户机进程客户机进程public class ServerRegister public static void main(String args)ServerSocket Ss=ne
23、w ServerSocket(1111);Socket s=Ss.accept();PrintStream out=new PrintStream(s.getOutputStream();BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream();服务程序服务程序:tryn while(true)n System.out.println(send to Client:+“user:);n out.println(“user:);n String x=in.readLine();n System.ou
24、t.println(get from Client:+x);n if(x.equals(linda)n System.out.println(send to Client+Login n welcome!);n out.println(“welcome!);n else out.println(“wrong name!);n out.close();in.close();s.close();catch(IOException e)n System.out.println(e.toString();ntryString x=in.readLine();nif(x.equals(“user:)n
25、System.out.printlnget from Server:+x);n System.out.println(send to Server:+linda);n out.println(linda);x=in.readLine();n System.out.println(“get from Server+x);n if(x=“welcome!”)n System.out.println(“register successfully”);n if(x=“wrong name”)n System.out.println(“register unsuccessfully”);n else S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十一 Java 网络 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内