欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第13章Java网络编程.ppt

    • 资源ID:79008919       资源大小:193.50KB        全文页数:71页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第13章Java网络编程.ppt

    第第1313章章 JavaJava网络编程网络编程 13.1 URL类编程 13.2 网络地址类InetAddress 13.3 Java套接字编程 13.4 数据报通信 第第1313章章 JavaJava网络编程网络编程lJava语言作为最流行的网络编程语言,提供了强大的网络编程功能。l使用Java语言可以编写底层的网络通信程序,这是通过包中提供的URL类、Socket类以及ServerSocket等类实现的。13.1 13.1 URLURL类编程类编程 l13.1.1 URL与URL类 l13.1.2 URLConnection类13.1.1 URL13.1.1 URL与与URLURL类类 lURL是统一资源定位器(Uniform Resource Locator)的简写,它是WWW中网络资源定位的表示方法。lURL的基本格式为:l协议名表示资源使用的协议,如http、ftp、telnet、mailto或file等。l主机名为任何合法的主机域名,如。l端口号是可选的,如果使用熟知端口号,则可以省略。l资源名一般用来指定远程主机上文件系统中文件的完整路径,如/index.html。1.1.创建创建URLURL对象对象l在包中定义了URL类,使用URL类对象可以对WWW资源进行各种操作。1.创建URL对象lURL类常用的构造方法有:lpublic URL(String spec)使用指定的字符串创建一个URL对象。lpublic URL(String protocol,String host,String file)使用指定的协议字符串、主机字符串和文件创建URL对象,使用默认的端口号。1.1.创建创建URLURL对象对象lpublic URL(String protocol,String host,int port,String file)使用指定的协议字符串、主机字符串、端口号和文件创建URL对象。lpublic URL(URL context,String spec)使用URL对象和相对地址创建URL对象。l注意,URL构造方法抛出MalformedURLException异常,当构造方法参数无效就会抛出该异常。因此,当创建URL对象时需要捕获并处理这个异常。2.URL2.URL类的常用方法类的常用方法lURL类提供的常用方法主要包括对URL对象的特征(如协议名、主机名、文件名、端口号和引用)的查询和对URL对象的读操作。lpublic String getProtocol()返回URL的协议名。lpublic String getHost()返回URL的主机名。lpublic int getPort()返回URL的端口号(若没有指定端口号返回值为-1)。lpublic String getFile()返回URL的文件名及路径。lpublic String getRef()返回URL的在文件中的相对位置。2.URL2.URL类的常用方法类的常用方法lpublic String getPath()返回URL的路径。lpublic String getAuthority()返回URL的权限信息。lpublic String getUserInfo()返回URL的用户信息。lpublic InputStream openStream()在URL对象上打开一个连接,返回一个InputStream对象以便从这一连接中读取数据。lURLConnection openConnection()返回一个URLConnection类对象,该对象表示有URL指定的远程对象的一个连接。程序程序13.1 ParseURL.java13.1 ParseURL.javaimport .*;import java.io.*;public class ParseURL public static void main(String args)throws Exception URL aURL=new URL(http:/:80/docs/books /tutorial+/index.html?name=networking#DOWNLOADING);System.out.println(protocol=+aURL.getProtocol();System.out.println(authority=+aURL.getAuthority();System.out.println(host=+aURL.getHost();System.out.println(port=+aURL.getPort();System.out.println(path=+aURL.getPath();System.out.println(query=+aURL.getQuery();System.out.println(filename=+aURL.getFile();System.out.println(ref=+aURL.getRef();程序程序13.1 ParseURL.java13.1 ParseURL.javal在创建一个URL对象后,可以使用其openStream()方法建立一个连接并返回一个InputStream对象,然后就可以从这个对象上读取数据。l下面的例子说明了该方法的使用,它通过URL对象读取WWW信息。程序程序13.2 ReadURL.java13.2 ReadURL.javaimport .*;import java.io.*;public class ReadURL public static void main(String args)try URL url=new URL(http:/);BufferedReader in=new BufferedReader(new InputStreamReader(url.openStream()url.openStream();FileWriter out=new FileWriter(index.html);String inputLine;while(inputLine=in.readLine()!=null)out.write(inputLine);in.close();catch(MalformedURLException me)catch(IOException ioe)13.1.2 URLConnection13.1.2 URLConnection类类l通过URL的openStream()方法,只能获得InputStream对象。使用该对象只能从网络上读取数据。l如果希望不仅要从URL读取内容,还要向URL对象发送服务请求及参数,可以使用URLConnection类。l利用URL类提供的openConnection()方法,可以建立一个URLConnection对象。可以调用其getInputStream()方法和getOutputStream()方法得到输入流和输出流对象。13.1.2 URLConnection13.1.2 URLConnection类类l这两个方法的格式分别为:lpublic InputStream getInputStream()lpublic OutputStream getOutputStream()l通过使用在URLConnection对象上创建的InputStream对象可以从URL读取数据,通过OutputStream对象,可以向URL输出数据。l下面是一个简单的Servlet,它的功能是将客户请求的字符串反转,然后再发送给客户。该程序应该运行在Servlet容器(如Tomcat)中。程序程序13.3 ReverseServlet.java13.3 ReverseServlet.javaimport javax.servlet.*;import javax.servlet.http.*;import java.io.*;import .*;public class ReverseServlet extends HttpServletprivate static String message=Servlet 处理错误;public void doPost(HttpServletRequest request,HttpServletResponse response)try int len=request.getContentLength();byte input=new bytelen;ServletInputStream sin=request.getInputStream();int c,count=0;while(c=sin.read(input,count,input.length-count)!=-1)count+=c;程序程序13.3 ReverseServlet.java13.3 ReverseServlet.java sin.close();String inString=new String(input);int index=inString.indexOf(=);if(index=-1)response.setStatus(HttpServletResponse.SC_BAD_REQUEST);response.getWriter().print(message);response.getWriter().close();return;String value=inString.substring(index+1);/将application/x-www-form-urlencoded字符串解码成UTF-8格式 String decodedString=URLDecoder.decode(value,UTF-8);/反转字符串 String reverseStr=(new StringBuffer(decodedString).reverse().toString();/设置响应状态码程序程序13.3 ReverseServlet.java13.3 ReverseServlet.java response.setStatus(HttpServletResponse.SC_OK);OutputStreamWriter writer=new OutputStreamWriter(response.getOutputStream();writer.write(reverseStr);writer.flush();writer.close();catch(IOException e)try resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);resp.getWriter().print(e.getMessage();resp.getWriter().close();catch(IOException ioe)13.1.2 URLConnection13.1.2 URLConnection类类l下面的程序Reverse.java向ReverseServlet发送请求,并传递一个字符串,ReverseServlet将字符串反转后发回给客户。程序程序13.4 Reverse.java13.4 Reverse.javaimport java.io.*;import .*;public class Reverse public static void main(String args)throws Exception if(args.length!=2)System.err.println(Usage:java Reverse +http:/localhost:8080/helloapp/reverse+string_to_reverse);System.exit(1);/将UTF-8字符串编码成application/x-www-form-urlencoded MIME格式 String stringToReverse=URLEncoder.encode(args1,UTF-8);URL url=new URL(args0);URLConnection connection=url.openConnection();connection.setDoOutput(true);/设置连接对象作为输出对象使用程序程序13.4 Reverse.java13.4 Reverse.java OutputStreamWriter out=new OutputStreamWriter(connection.getOutputStream();/向服务器发送字符串 out.write(string=+stringToReverse);out.write(string=+stringToReverse);out.close();BufferedReader in=new BufferedReader(new InputStreamReader(connection.getInputStream()connection.getInputStream();/从服务器读取反转后的字符串 String decodedString;while(decodedString=in.readLine()!=null)System.out.println(decodedString);in.close();13.2 13.2 网络地址类网络地址类InetAddressInetAddressl要实现网络通信,首先需要知道计算机的地址。连接到Internet上的计算机使用IP地址或域名来唯一标识,在局域网上的计算机则可以使用名称标识。在包中提供了InetAddress类来表示计算机地址。lInetAddress类没有提供构造方法,要得到一个InetAddress类对象,需要使用该类的静态方法。13.2 13.2 网络地址类网络地址类InetAddressInetAddresslpublic static InetAddress getByName(String host)返回给定主机名或点分十进制表示的主机的IP地址。lpublic static InetAddress getAllByName(String host)返回给定主机名或点分十进制表示的主机的所有IP地址数组。lpublic static InetAddress getLocalHost()返回本地主机的IP地址。l上述方法在指定的主机未知时将抛出UnknownHostException异常。13.2 13.2 网络地址类网络地址类InetAddressInetAddresslInetAddress类其他方法:lpublic String getHostName()返回该IP地址的主机名字符串。lpublic String getHostAddress()返回该IP地址的点分十进制字符串。lpublic byte getAddress()返回4个元素的表示IP地址的字节数组。程序程序13.5 GetIPAddress.java13.5 GetIPAddress.javaimport .*;public class GetIPAddresspublic static void main(String args)throws Exception if(args.length!=1)System.out.println(Usage:GetIPAddress DomainName);System.exit(1);InetAddress address=InetAddress.getByName(args0);InetAddress address=InetAddress.getByName(args0);System.out.println(address);System.out.println(主机名:+address.getHostName();System.out.println(IP地址:+address.getHostAddress();程序程序13.5 GetIPAddress.java13.5 GetIPAddress.javal要运行该程序,机器必须连到网络上,并为其传递一个命令行参数,例如:D:studyjava GetIPAddress www.sun.javalwww.sun.java为命令行参数。程序的输出结果为:www.sun.java/60.19.29.21主机名:www.sun.javaIP地址:60.19.29.2113.3 13.3 JavaJava套接字编程套接字编程 l13.3.1 套接字基本概念l13.3.2 套接字类 l13.3.3 Java小程序的网络通信 13.3.1 13.3.1 套接字基本概念套接字基本概念 l在网络上,很多应用都是采用客户/服务器(C/S)结构的。实现网络通信必须将两台机器连接起来建立一个双向通信链路,这个双向通信链路的每一端称为一个套接字(Socket)。1.1.端口号与套接字端口号与套接字 l在Internet上使用IP地址唯一标识一台主机。l一台主机可能提供多种服务,仅用IP地址不能唯一标识一个服务。通常使用一个整数来标识该机器上的某个服务,这个整数就是端口号(Port)。l端口号是用16位整数标识,共有65536个端口号。端口号并不是机器上实际存在的物理位置,而是一种软件上的抽象。1.1.端口号与套接字端口号与套接字 l端口号分为两类。l一类是由因特网名字和号码指派公司ICANN分配给一些常用的应用层程序固定使用的熟知端口,其数值为01023。例如,HTTP服务的端口号为80,FTP服务的端口号为21。表13-1列出了几种常用的熟知端口号。表13-1 常用服务的端口号服 务FTPTelnetSMTPDNSHTTP SNMP端口号21232553801611.1.端口号与套接字端口号与套接字 l另一类端口为一般端口,用来随时分配给请求通信的客户进程。l为了在通信时不致发生混乱,必须把端口号和主机的IP地址结合在一起使用。l一个TCP连接由它的两个端点来标识,而每一个端点又是由IP地址和端口号决定的。TCP连接的端点称为套接字,套接字是由IP地址和端口号构成的,如图13-1所示。1.1.端口号与套接字端口号与套接字 131.6.23.131500131.6.23.13,1500IP地址端口号套接字图13-1 套接字的构成 这里,131.6.23.13为IP地址,1500为端口号,因此套接字为131.6.23.13,1500。2.2.套接字通信套接字通信 l运行在一台特定机器上的某个服务器(如HTTP服务器)都有一个套接字绑定到该服务器上。服务器只是等待、监听客户的连接请求。l在客户端,客户机需要知道服务器的主机名和端口号。为了建立连接请求,客户机试图与服务器机上的指定端口号上的服务连接,这个请求过程如图13-2所示。2.2.套接字通信套接字通信l如果正常,服务器将接受连接请求。一旦接受了请求,服务器将创建一个新的绑定到另一个端口号的套接字,然后使用该套接字与客户通信。这样,服务器可以使用原来的套接字继续监听连接请求,如图13-3所示。连接请求服务器客 户 机服务器端口端口图13-2 客户向服务器请求连接2.2.套接字通信套接字通信l在客户端,如果连接被接受,就会创建一个套接字,客户就可以使用该套接字与服务器通信。注意,客户端的套接字并没有绑定到与服务器连接的端口号上,相反客户被指定客户程序所在机器上的一个端口号上。现在客户与服务器就可以读写套接字进行通信了。连接服务器客户机端口端口图13-3 服务器接受客户的连接 13.3.2 13.3.2 套接字类套接字类 l为了实现套接字通信,在包中提供了两个类:Socket和ServerSocket。它们分别实现连接的客户端和服务器端的套接字。lSocket类的常用构造方法:lpublic Socket(String host,int port)throws UnknownHostException,IOException创建一个套接字对象并将其连接到命名主机的指定端口上。host为主机名,port为端口号。13.3.2 13.3.2 套接字类套接字类 lpublic Socket(InetAddress address,int port)throws IOException 创建一个套接字对象并将其连接到指定IP地址的指定端口上。lpublic Socket(String host,int port,InetAddress localAddr,int localPort)throws IOException 在指定的远程主机和端口号上创建一个套接字,并将其与本地地址和端口号绑定。lpublic Socket(InetAddress address,int port,InetAddress localAddr,int localPort)throws IOException 功能同上个方法,远程主机通过InetAddress对象给出。SocketSocket类提供的主要方法类提供的主要方法lpublic InetAddress getInetAddress()返回该套接字所连接的IP地址。lpublic int getPort()返回该套接字所连接的远程端口号。lpublic synchronized void close()throws IOException关闭套接字对象。lpublic InputStrean getInputStream()throws IOException 获得套接字绑定的数据输入流。lpublic OutputStream getOutputStream()throws IOException 获得套接字绑定的数据输出流。ServerSocketServerSocket类类l用在服务器端。客户与服务器通信,客户向服务器提出请求,服务器监听请求,一旦监听到客户请求,服务器也要建立一个套接字。lServerSocket类的构造方法如下:lServerSocket(int port)创建绑定到指定端口port上的服务器套接字。lServerSocket(int port,int backlog)参数backlog指定最大的队列数,即服务器所能支持的最大连接数。lServerSocket(int port,int backlog,InetAddress bindAddr)参数bindAddr为所绑定的地址。ServerSocketServerSocket类提供的主要方法类提供的主要方法lpublic Socket accept()throws IOException 该方法是ServerSocket类的重要方法,调用该方法将阻塞当前系统服务线程,直到有客户连接。当有客户连接时,该方法返回一个Socket对象。正是通过该Socket对象,服务器才可以与客户通信。lpublic void close()throws IOException 关闭ServerSocket对象。1.1.客户和服务器通信的实例客户和服务器通信的实例 l包括以下4个基本步骤:(1)创建套接字对象。(2)打开连接到套接字的输入输出流。(3)按照一定协议对套接字进行读写操作。(4)关闭套接字对象。1.1.客户和服务器通信的实例客户和服务器通信的实例服务器端ServerSocket(port#)ss.accept()得到socket对象OutputStreamInputStreamclose()客户端Socket(host,port#)得到socket对象OutputStreamInputStreamclose()图13-4 通信双方建立连接的过程 1.1.客户和服务器通信的实例客户和服务器通信的实例l下面是一个简单的字符界面的聊天程序。l在服务器端使用端口号4700创建服务器套接字。ServerDemo.java是服务器端程序,ClientDemo.java是客户端程序。程序程序13.6 ServerDemo.java13.6 ServerDemo.javaimport java.io.*;import .*;import java.util.Scanner;public class ServerDemo public static void main(String args)try ServerSocket server=new ServerSocket(4700);Socket socket=server.accept();BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream();PrintWriter os=new PrintWriter(socket.getOutputStream();Scanner sc=new Scanner(System.in);System.out.println(客户:+is.readLine();/显示从客户端读的数据程序程序13.6 ServerDemo.java13.6 ServerDemo.javaSystem.out.print(服务器:);String line=sc.nextLine();/从键盘读一行数据 while(!line.equals(bye)os.println(line);/将数据发送到客户端 os.flush();System.out.println(客户:+is.readLine();/显示从客户端读的数据 System.out.print(服务器:);line=sc.nextLine();/从键盘读一行数据 sc.close();os.close();is.close();socket.close();server.close();catch(Exception e)System.out.println(Error:+e);程序程序13.7 ClientDemo.java 13.7 ClientDemo.java import java.io.*;import .*;import java.util.Scanner;public class ClientDemo public static void main(String args)try Socket socket=new Socket(servername,4700);BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream();PrintWriter os=new PrintWriter(socket.getOutputStream();Scanner sc=new Scanner(System.in);System.out.print(客户:);String line=sc.nextLine();/从键盘读一行数据 while(!line.equals(bye)os.println(line);/将数据发送到服务器程序程序13.7 ClientDemo.java 13.7 ClientDemo.java os.flush();System.out.println(服务器:+is.readLine();/从服务器端读一行数据 System.out.print(客户:);line=sc.nextLine();/从键盘读一行数据 sc.close();os.close();is.close();socket.close();catch(Exception e)System.out.println(Error:+e);2.2.为多个客户提供服务为多个客户提供服务 l在上面的例子中,服务器只能为一个客户提供服务。在实际应用中,往往是在服务器机器上运行一个服务器,它接收来自多个客户的请求,为多个客户提供服务。l下面程序的功能是客户程序向服务器发送一个表示圆的半径的数,服务器为其计算圆的面积并将计算结果发送给客户。这里要求服务器能同时为多个客户服务,因此使用了多线程的机制。2.2.为多个客户提供服务为多个客户提供服务l服务器端程序。l程序13.8 MultiThreadServer.java l客户端程序。l程序13.9 Client.java 2.2.为多个客户提供服务为多个客户提供服务 图13-7 服务器端程序运行效果 图13-8 客户端程序运行效果 13.3.3 Java13.3.3 Java小程序的网络通信小程序的网络通信 lApplet也可以实现网络通信,但由于安全的限制,Applet只能和它所在的主机进行通信。l要实现Applet程序与它所在的主机进行通信,可以首先通过调用Applet的getCodeBase()方法得到它所在的主机的URL地址,然后用URL的getHost()方法得到主机名,再用InetAddress类的getByName()得到该主机的IP地址,然后就可以采用Socket或数据报方式与该主机通信了。13.3.3 Applet13.3.3 Applet的网络通信的网络通信l下面开发一个通过Applet访问服务器的程序。在Applet中显示它访问服务器的次数,次数记录在服务器端的文件中,每次网页被访问或重新装载,Applet给服务器发送一个请求,服务器将次数加1并把它发送给Applet,然后在Applet中显示出来.l程序13.10 CountServer.java l程序13.11 AppletClient.java 13.4 13.4 数据报通信数据报通信l13.4.1 流式通信和数据报通信 l13.4.2 DatagramSocket和DatagramPacket l13.4.3 一个简单的UDP通信的例子13.4.1 13.4.1 流式通信和数据报通信流式通信和数据报通信 l当编写网络程序时,有两种通信可供选择:流式通信和数据报通信。l流式通信使用TCP协议,该协议是面向连接的协议。使用这种协议要求发送方和接收方都要建立套接字,一旦两个套接字建立起来,它们就可以进行双向通信,双方都可以发送和接收数据。13.4.1 13.4.1 流式通信和数据报通信流式通信和数据报通信l数据报通信使用UDP协议,该协议是一种无连接的协议。l使用这种协议通信,每个数据报都是一个独立的信息单元,它包括完整的目的地址,数据报在网络上以任何可能的路径传往目的地,因此数据能否到达目的地、到达的时间以及内容的正确性都是不能保证,该协议提供的是不可靠的服务。两种协议的比较两种协议的比较 使用UDP时,每个数据报都给出了完整的地址信息,无需建立发送方和接收方的连接。对于TCP,是一个面向连接的协议,在通信之前必须建立双方的连接,因此在TCP中多了一个建立连接的时间。使用UDP传输数据时有大小限制,每个数据报必须不大于64KB。而使用TCP就没有这方面限制,一旦连接建立,就可以传输大量数据。两种协议的比较两种协议的比较 UDP是不可靠协议,发送方发送的数据不一定以相同的次序到达接收方。而TCP是可靠协议,确保接收方完全正确地获取发送方发送的数据。TCP使用较广泛,如TELNET远程登录、FTP文件传输都需要不定长度的数据可靠地传输,因此使用TCP协议。相比之下UDP比较简单,需要较少的监护,因此常用于局域网分散系统中的客户/服务器应用程序。13.4.2 DatagramSocket13.4.2 DatagramSocket和和DatagramPacketDatagramPacketl用UDP编写客户/服务器程序时,无论是客户方还是服务器方,首先都要建立一个DatagramSocket对象用来接收或发送数据报,然后使用DatagramPacket类对象作为传输数据的载体。1.DatagramSocket1.DatagramSocket类类 l用于在通信的两端建立数据报套接字,构造方法:lpublic DatagramSocket(int port)throws SocketException 创建一个数据报套接字,并将它绑定在本地主机指定的端口上。lpublic DatagramSocket()throws SocketException 创建一个数据报套接字,并将它绑定在本地主机一个可用的端口上。DatagramSocketDatagramSocket类的常用方法类的常用方法lpublic void receive(DatagramPacket p)throws IOExceptionl用来接收一个报文,参数p用来保存接收的报文。l该方法会阻塞接收者,直到有一个报文到达套接字。l为防止使接收者永远阻塞,一般接收者设置一个计时器,如果收不到对方报文,计时器结束,接收者会作出处理。DatagramSocketDatagramSocket类的常用方法类的常用方法lpublic void send(DatagramPacket p)throws IOExceptionl该方法用来发送一个报文,参数p保存了要发送的报文。报文包括数据、接收者的IP地址及其端口。lpublic InetAddress getInetAddress()返回该套接字连接的IP地址,如果套接字没有连接返回null。lpublic InetAddress getLocalAddress()返回套接字绑定的本地IP地址。2.DatagramPacket2.DatagramPacket类类 l用于创建一个数据报,它的构造方法有:lpublic DatagramPacket(byte buf,int length)该构造方法创建的对象用于接收数据报。参数buf为数据报文缓冲区,length为缓冲区长度。l在接收数据之前,应该使用该构造方法创建一个DatagramPacket对象,给出接收数据的缓冲区及长度。然后调用DatagramSocket的receive()方法等待数据报的到来,receive()方法将一直等待,直到有一个数据报到来。2.DatagramPacket2.DatagramPacket类类l例如:byte buf=new byte1024;DatagramPacket packet=new DatagramPacket(buf,1024);socket.receive(packet);/接收数据2.DatagramPacket2.DatagramPacket类类lpublic DatagramPacket(byte buf,int length,InetAddress address,int port)该构造方法创建的对象用于发送数据报。参数buf为数据报文缓冲区,length为缓冲区的长度,address为接收方的地址,port为接收方数据报套接字绑定的端口号。l在发送数据前,也要生成一个新的DatagramPacket对象,在给出发送方的数据缓冲区及长度的同时,还要给出完整的目标地址,包括IP地址和端口号。发送数据是通过DatagramSocket的send()方法实现的,send()方法根据目的地址选择路径,以传送数据报。2.DatagramPacket2.DatagramPacket类类l例如:DatagramPacket packet=new DatagramPacket(msg,send.length(),clientIP,clientPort);socket.send(packet);/发送数据DatagramPacketDatagramPacket类的常用方法类的常用方法lpublic InetAddress getAddress()获得报文发送者的IP地址。lpublic int getPort()获得报文发送者的端口。lpublic int getLength()返回发送

    注意事项

    本文(第13章Java网络编程.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开