java大学教程ppt13

上传人:pu****.1 文档编号:576609815 上传时间:2024-08-20 格式:PPT 页数:37 大小:174.02KB
返回 下载 相关 举报
java大学教程ppt13_第1页
第1页 / 共37页
java大学教程ppt13_第2页
第2页 / 共37页
java大学教程ppt13_第3页
第3页 / 共37页
java大学教程ppt13_第4页
第4页 / 共37页
java大学教程ppt13_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《java大学教程ppt13》由会员分享,可在线阅读,更多相关《java大学教程ppt13(37页珍藏版)》请在金锄头文库上搜索。

1、JAVA语言程序设计周敏彤1第十二讲 Java图形用户界面n概述n发展nAWT/Swing/JFCn组件分类n布局管理n界面设计n事件处理n应用实例n设计原则2n概述nURL应用nSocket应用nUDP数据报n关于InetAddress第十三讲 网络编程3概述nThe Java platform is highly regarded in part because of its suitability for writing programs that use and interact with the resources on the Internet and the World Wide

2、 Web. 4概述1.AppletnApplet程序嵌在HTML文件中,通过网络下载Applet程序代码,在本地Java-enabled browser 中执行2.HTTPn通过URL类获取服务器端的HTML文件3.Socket(套接字)n实现Client/Server结构的应用4.JDBC (Java Database Connectivity)n通过网络访问关系型数据库5.Servlet/JSP (Java Server Page)nWEB服务器端的动态编程5概述n网络基础-TCP/IP协议簇n网络层(Network Layer)nInternet Protocol(IP), IP地址(3

3、2比特)n传输层(Transport Layer)nTransport Control Protocol (TCP)nUser Datagram Protocol (UDP)nPort (端口号, 16比特, 065535)n应用层(Application Layer)nHTTP, FTP, SMTP, POP3, Telnet, DNS TCP or UDPPort应用PortPortPortPort数据应用应用应用6概述nJava语言中基本网络类nPackage .URL.URLC.S.ServerS.DatagramP.DatagramS.MulticastSocket7n概述nURL应

4、用nSocket应用nUDP数据报n关于InetAddress第十三讲 网络编程8URL应用n什么是URL?n统一资源定位符(Uniform Resource Locator)na reference (an address, a pointer) to a resource on the I:/协议标识符资源名 (主机名, 端口号, 文件名) URL(String spec) throws MalformedURLExceptionnpublic URL(String protocol, String host, String file) throws MalformedURLExcepti

5、onnpublic URL(String protocol, String host, int port, String file) throws MalformedURLExceptionn n实例方法npublic final InputStream openStream() throws IOExceptionnOpens a connection to this URL and returns an InputStream for reading from that connectionnpublic URLConnection openConnection() throws IOEx

6、ceptionnReturns a URLConnection object that represents a connection to the remote object referred to by the URL 10URL应用.URL类-示例1.“http:/ URL(http:/ URL(http:/ URL(http, , /academic/index.html);nnew URL(http, , 80, “academic/index.html);11URL应用.URL类-实例1import .*;import java.io.*;public class URLReade

7、r public static void main(String args) throws Exception URL pku = new URL(http:/ in = new BufferedReader(new InputStreamReader( pku.openStream();String inputLine;while (inputLine = in.readLine() != null) System.out.println(inputLine);in.close(); .URL类public final InputStream openStream() throws IOEx

8、ception12URL应用.URL类-实例2StringBuffer document = new StringBuffer();String urlString = “http:/”;try URL url = new URL(urlString);URLConnection conn = url.openConnection();BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream();String line = null;while(line = reader.readL

9、ine() != null)document.append(line + “n”);reader.close(); catch(MalformedURLException e) System.out.println(“Unable to connection to URL:” + urlString); catch (IOException e) System.out.println(“IOException when connected to URL:” + urlString);System.out.println(document.toString();.URL类openStream()

10、 is a shorthand for openConnection().getInputStream()13URL应用.URL类n操作流程1.用所要连接资源的有效 URL实例化一个 URL对象(如有问题则抛出 MalformedURLException)2.打开该 URL对象上的一个连接 3.把该连接的 InputStream 包装进 BufferedReader 以便能按行读取4.用 BufferedReader 读文档5.关闭 BufferedReader 14n概述nURL应用nSocket应用nUDP数据报n关于InetAddress第十三讲 网络编程15Socket应用nTCP为C

11、lient/Server应用建立一个可靠的、端到端的通信连接nSocket(套接字)nTCP双向通信连接的一个端点n通信双方: 客户端、服务器端n客户/服务器的本质区别n服务器方(Server)总在监听一个特定的端口n客户(Client)则向该端口发出连接请求nWindows系统TCP/UDP连接状态的监测nnetstat -a16Socket应用.Socket类n表示TCP连接的客户方(Client),和谁连接npublic Socket(String host, int port) throws UnknownHostException, IOExceptionn具有双向流npublic

12、InputStream getInputStream() throws IOExceptionnpublic OutputStream getOutputStream() throws IOException17Socket应用n对客户端对Socket进行读写-实例Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null;try echoSocket = new Socket(“, 7); out = new PrintWriter(echoSocket.getOutputStream(), true)

13、; in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream(); BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in); String userInput; while (userInput = stdIn.readLine() != null) out.println(userInput); System.out.println(“echo: “ + in.readLine(); out.close(); in

14、.close(); stdIn.close(); echoSocket.close(); catch (UnknownHostException e) System.out.println(Dont know about host: .); System.exit(1); catch (IOException e) System.out.println(Couldnt get I/O for “ + the connection to: .); System.exit(1);ServerSocketLocalhostSocketOutputStreamInputStreamInputStrea

15、mOutputStream18Socket应用.ServerSocket类nTCP连接的服务器方(Server),监听端口npublic ServerSocket(int port) throws IOExceptionn接收连接请求npublic Socket accept() throws IOExceptionnListens for a connection to be made to this socket and accepts it. The method blocks(阻塞) until a connection is maden排队的服务类型19Socket应用n对Serve

16、rSocket的实现-实例ServerSocket serverSocket = null;try serverSocket = new ServerSocket(7); boolean listening = true; while(listening) try Socket clientSocket = serverSocket.accept(); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputS

17、treamReader( clientSocket.getInputStream(); String inputLine; while (inputLine = in.readLine() != null) out.println(inputLine); out.close(); in.close(); clientSocket.close(); catch (IOException e) System.out.println(e); serverSocket.close(); catch (IOException e) System.out.println(e); System.exit(1

18、); ServerSocketLocalhostSocketOutputStreamInputStreamInputStreamOutputStream20Socket应用n多线程的服务器实现n为每个客户的连接(Socket)分配一个线程,让其独立处理n作为java.lang.Thread类的子类n实现java.lang.Runnable接口Thread 1Thread nClient 1SocketPServerSocketClient nSocket21Socket应用n多线程的服务器实现-实例ServerSocket serverSocket = new ServerSocket(7);

19、boolean listening = true;while (listening) new EchoServerThread(serverSocket.accept().start();serverSocket.close();class EchoServerThread extends Thread public void run() 22n概述nURL应用nSocket应用nUDP数据报n关于InetAddress第十三讲 网络编程23UDP数据报应用n数据报(Datagram)n通过UDP协议发送数据报, 各个数据报是相互独立, 数据报是否到达(可能丢失)、到达时间、到达顺序不能保证.

20、DatagramPacketn构造一个要发送/接收的数据报对象.DatagramSocketn构造一个用于发送/接收数据报的socket对象.MulticastSocketn构造一个用于发送/接收组播数据报的socket对象24UDP数据报应用n数据报(Datagram) 的收/发流程n发送1.构造用于发送的数据报对象npublic DatagramPacket(byte buf, int length, InetAddress address, int port)2.构造用于发送数据报的socket对象npublic DatagramSocket() throws SocketExcepti

21、on3.发送npublic void send(DatagramPacket p) throws IOExceptionn接收1.构造用于接收的数据报对象npublic DatagramPacket(byte buf, int length)2.构造用于接收数据报的socket对象npublic DatagramSocket(int port) throws SocketException3.接收npublic void receive(DatagramPacket p) throws IOExceptionnThis method blocks until a datagram is rec

22、eived25UDP数据报应用n数据报客户端的实现DatagramSocket socket = new DatagramSocket();String s = “hello”;byte buf = s.getBytes();InetAddress address = InetAddress.getByName(“”);DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 6666);socket.send(packet);packet = new DatagramPacket(buf, buf.length)

23、;socket.receive(packet);String received = new String(packet.getData();System.out.println(“Received: + received);socket.close();DatagramSocketLocalhostDatagramSocketDatagram packetpublic DatagramPacket(byte buf, int length, InetAddress address, int port)public DatagramPacket(byte buf, int length)publ

24、ic byte getData()public DatagramSocket() throws SocketExceptionpublic void receive(DatagramPacket p) throws IOExceptionpublic void send(DatagramPacket p) throws IOException构造数据报Socket构造发送数据报, 发送要发送的地址构造接收数据报关闭数据报Socket从数据报中获取数据接收数据报26UDP数据报应用n数据报服务端的实现DatagramSocket socket = new DatagramSocket(6666)

25、;byte buf = new byte256;DatagramPacket packet = new DatagramPacket(buf, buf.length);socket.receive(packet);String received = new String(packet.getData().trim();InetAddress address = packet.getAddress();int port = packet.getPort();packet = new DatagramPacket(buf, buf.length, address, port);socket.sen

26、d(packet);socket.close();DatagramSocketLocalhostDatagramSocketDatagram packetpublic DatagramPacket(byte buf, int length, InetAddress address, int port)public DatagramPacket(byte buf, int length)public byte getData()public InetAddress getAddress()public int getPort()public DatagramSocket(int port) th

27、rows SocketExceptionpublic void receive(DatagramPacket p) throws IOExceptionpublic void send(DatagramPacket p) throws IOException构造数据报Socket,监听端口构造发送数据报得到要发送的地址构造接收数据报关闭数据报Socket接收数据报接收到的字符串得到要发送的端口发送数据报27UDP数据报应用n组播数据报(Multicast Datagram)nD类IP地址(组播地址)n224.0.0.0 239.255.255.255n组的标识n一个应用向一个组播地址/组发送一

28、个消息,所有组成员都能从该组播地址和端口上接收到该消息。该应用可以不是组成员n当一个应用成为一个组播地址/端口的成员,则它可以接收到其他成员发送的数据报28UDP数据报应用n组播数据报(Multicast Datagram).MulticastSocket类n指定组播地址和端口n加入组/离开组组播地址组(224.0.0.1)加入组离开组29UDP数据报应用n组播数据报(Multicast Datagram)的实例String msg = Hello;InetAddress grp = InetAddress.getByName(228.5.6.7);MulticastSocket s = ne

29、w MulticastSocket(6789);s.joinGroup(grp);DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), grp, 6789);s.send(hi);byte buf = new byte1000;DatagramPacket recv = new DatagramPacket(buf, buf.length);s.receive(recv);s.leaveGroup(grp);s.close();.MulticastSocket extends DatagramSocketnpu

30、blic MulticastSocket(int port) throws IOExceptionnpublic void joinGroup(InetAddress mcastaddr) throws IOExceptionnpublic void leaveGroup(InetAddress mcastaddr) throws IOExceptionnpublic void send(DatagramPacket p) throws IOExceptionnpublic void receive(DatagramPacket p) throws IOException定义一个组播地址构造接

31、收数据报构造组播Socket关闭数据报Socket加入该组构造发送数据报,发送接收数据报离开该组30n概述nURL应用nSocket应用nUDP数据报n关于InetAddress第十三讲 网络编程31关于InetA.InetAddress类n表示IP地址n没有构造方法n一些实用方法npublic static InetAddress getAllByName(String host) throws UnknownHostExceptionnpublic static InetAddress getByName(String host) throws UnknownHostExceptionnp

32、ublic static InetAddress getLocalHost() throws UnknownHostExceptionnpublic String getHostName() /获得主机名npublic String getCanonicalHostName() /得到对应该IP地址的完全域名npublic String toString() /得到hostname/IP address32关于InetA.InetAddress类-实例(无连网)InetAddress inet = null;try inet = InetAddress.getLocalHost(); catc

33、h (UnknownHostException e) System.out.println(e);System.out.println(inet);System.out.println(inet.getHostName();System.out.println(inet.getCanonicalHostName();运行结果:peer/127.0.0.1peerpeerSystem.out.println(inet);等效于System.out.println(inet.toString();localhost 本地主机127.0.0 1 回送地址 (loopback address)33关于

34、InetA.InetAddress类-实例(连网)InetAddress inet = null;try inet = InetAddress.getLocalHost(); catch (UnknownHostException e) System.out.println(e);System.out.println(inet);System.out.println(inet.getHostName();System.out.println(inet.getCanonicalHostName();运行结果:peer/162.105.130.97peerpeerSystem.out.println(inet);等效于System.out.println(inet.toString();34n概述nServletnJSP(Java Server Page)第十三讲 Java WEB编程35n概述nConnectionnResultSetnStatementnPreparedStatementnConnectionPool第十三讲 Java数据库连接(JDBC)36第十三讲 结束 !37

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号