课件与代码java预热班讲义_第1页
课件与代码java预热班讲义_第2页
课件与代码java预热班讲义_第3页
课件与代码java预热班讲义_第4页
课件与代码java预热班讲义_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、北京传智播客教育 Java 预热班讲义广州传智播客北京传智播客教育 计算机网络指分布在不同地域的计算机,通过外部设备连接起来,实现了资源共享与数据传输的计算机系统。 北京传智播客教育 Extends:IPIP地址Internet上的每台主机(Host)都有一个唯一的IP地址。IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0255,段与段之间用句点隔开。例如。(四个字节)IP地址类别IP地址是由网络号和主机号组成A类地址:8位网络位,24位主机位B类地址: 16位网络位,16位主机位C类地址: 24位网络位,8位主机位特殊的IP地址 表示 本机回环地址北京传智播客教

2、育 Extends:PortPort地址如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口 可以有65536(即:216)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(216-1)。 Port分类(065535)公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。 注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。常用端口21

3、 FTP 80 HTTP443 HTTPS北京传智播客教育 Extends:协议TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。特点:面向连接的协议,数据传输必须要建立连接,所以在TCP中需要连接时间。传输数据大小限制,一旦连接建立,双方可以按统一的格式传输大的数据。一个可靠的协议,确保接收方完全正确地获取发送方所发送的全部数据。UDP: User Datagram Protocol的简称, 中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输层协

4、议,提供面向事务的简单不可靠信息传送服务。特点:每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。北京传智播客教育 Extends:通信要素IP协议Port北京传智播客教育 Java网络编程Java网络编程Java网络编程其实就是实现局域网或互联网之间的数据通信(数据传输)。Java网络编程要素通过前面的知识,大家知道了计算机之间的数据传输需要三个要素。IP(主机名)、端口、协议Java是OOP语言,所以将其封装为特定的对

5、象, .*对象映射IP 主机名 (InetAddress)端口 数字标识 不用封装为对象 北京传智播客教育 InetAddress InetAddress此类表示互联网协议 (IP) 地址。功能getLocalHost() getHostAddress() getHostName() getByName(String host) getAllByName(String host) 细节使用getByName(String host)通过一个IP地址找主机时,如果IP和Address没有对应在公网上,那么该IP解析不了对应的地址,而且显示为对应IP且查询很慢。可以getByName(String

6、 host)找出域名对应的IP,getAllByName()可以获取多个地址。北京传智播客教育 UDP和TCP协议UDP将数据极其源和目的封装为数据包,不需要建立连接。每个数据包大小限制在64K中因为无连接,所以不可靠因为不需要建立连接,所以速度快如:人说话、飞秋、凌波、CS等TCP面向连接,有特有的通道在连接中传输大数据量通过三次握手机制连接,可靠协议通信前必须建立连接,效率稍低如:打电话,文件的传送.北京传智播客教育 Extends:三次握手机制A: 你在没?在呢。 :BA: 知道了。 3北京传智播客教育 Socket编程(网络编程)Socketsocket的英文原义是“孔”或“插座”。作

7、为4BDS UNIX的进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄(引用)。每个插座就是一个应用程序。细节不同的通信规则需要定义不同的插座。UDP:DatagramSocket 、 DatagramPacketTCP:ServerSocket 、Socket插座插座北京传智播客教育 UDP数据传输UDP数据传输DatagramSocket与DatagramPacket建立发送端,接收端建立数据包调用Socket的发送接收方法关闭Socket注意发送端与接收端是两个独立的运行程序发送端发送数据的端口是随机的IDE中的控制台切换北京传智播客教育 UD

8、P发送端在发送端,要在数据包对象中明确目的地IP及端口。DatagramSocket socket = new DatagramSocket(); byte bs = hello World.getBytes(); InetAddress adress = InetAddress.getByName(); int port = 5800; DatagramPacket pack = new DatagramPacket(bs,bs.length,adress,port); socket.send(pack); socket.close();北京传智播客教育 UDP接收端在接收端,要指定监听的端

9、口。DatagramSocket socket = new DatagramSocket(5800); byte bs = new byte1024; DatagramPacket pack = new DatagramPacket(bs,bs.length); socket.receive(pack); InetAddress adress = pack.getAddress(); byte b = pack.getData(); int port = pack.getPort(); System.out.println(adress); System.out.println(port);

10、System.out.println(new String(b,0,b.length); socket.close();北京传智播客教育 练习修改代码,使得接受者可以连续接收发送者发送的数据修改代码,使得发送的数据是可变的,如可以从控制台上输入DatagramSocket socket = new DatagramSocket(10001);while(true) byte bs = new byte1024; DatagramPacket pack = new DatagramPacket(bs,bs.length); socket.receive(pack); InetAddress ad

11、ress = pack.getAddress(); byte b = pack.getData(); int port = pack.getPort(); System.out.print(adress+ ); System.out.print(port+ ); System.out.println(new String(b,0,b.length); 北京传智播客教育 键盘接收数据的发送端public static void main(String args) throws Exception BufferedReader br = new BufferedReader(new InputSt

12、reamReader(System.in);String str = null;DatagramSocket socket = new DatagramSocket();DatagramPacket pack = null;byte bs = null;while(str = br.readLine()!=null) if(str.equals(finish) break; bs = str.getBytes();pack = new DatagramPacket(bs,bs.length,InetAddress.getByName(),10001); socket.send(pack);so

13、cket.close();北京传智播客教育 与飞秋通讯疑问:知道IP地址与端口是不是就可以给指定的软件发送消息时,软件是不是会处理所有的数据?北京传智播客教育 练习通过键盘录入获取要发送的信息。将发送和接收分别封装到两个线程中(群聊)。北京传智播客教育 TCP数据传输TCP数据传输ServerSocket和Socket建立客户端和服务器端建立连接后,通过Socket中的IO流进行数据的传输关闭socket注意同样,客户端与服务器端是两个独立的应用程序。北京传智播客教育 TCP客户端通过Socket建立对象并指定要连接的服务端主机以及端口。public static void main(Stri

14、ng args) throws Exception Socket socket = new Socket(,10000);OutputStream out = socket.getOutputStream();out.write(你好.getBytes();socket.close();北京传智播客教育 TCP客户端建立服务端需要监听一个端口public static void main(String args) throws Exception ServerSocket server = new ServerSocket(10000);Socket socket = server.accep

15、t();InputStream in = socket.getInputStream();byte b = new byte1024;int len = 0;while(len = in.read(b) != -1) System.out.println(socket.getInetAddress().getHostAddress()+: “ +new String(b,0,len);server.close();北京传智播客教育 Extends在上面程序上实现互相的输入和输出public static void main(String args) throws Exception Socke

16、t socket = new Socket(,10000);OutputStream out = socket.getOutputStream();out.write(你好.getBytes();InputStream in = socket.getInputStream();byte b = new byte1024;int len = 0;len = in.read(b);System.out.println(new String(b,0,len);socket.close();北京传智播客教育 Extendspublic static void main(String args) thr

17、ows Exception ServerSocket server = new ServerSocket(10000);Socket socket = server.accept();InputStream in = socket.getInputStream();byte b = new byte1024;int len = 0;len = in.read(b);System.out.println(socket.getInetAddress().getHostAddress()+: “ +new String(b,0,len);OutputStream out = socket.getOutputStream();out.write(我收到了.getBytes();server.close();北京传智播客教育 练习客户端发送数据,转换成大写回发.使用TCP数据传输实现基于网络的文件拷贝北京传智播客教育 BS开发浏览器和服务器之间的通信原理public static void main(String args) throws Exception ServerSocket server = new Se

温馨提示

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

最新文档

评论

0/150

提交评论