美文网首页程序员java学习记录
java网络编程---网络编程三要素、对象流

java网络编程---网络编程三要素、对象流

作者: 一花一世界yu | 来源:发表于2020-05-07 23:43 被阅读0次

一、重点知识

网络参考模型概念七层,我们一般看为四层

UDP每个包64kb

查看ip命令:ipconfig

测试ip指令 ping

同一台电脑使用重复端口时,如果两个程序都被启动了会报异常

unknowhostexception不识别的主机异常,编译时异常

一个域名可以有多个主机,用getAllByName()方法获得所有的主机ip地址

两台机器之前通讯,就是socket通讯

Serversocket.accept 是一个会阻塞程序继续执行的方法

实际上在资源关闭中,只关闭socket就好了,再关闭socket时会关闭他创建的流

二、课堂知识

2.1、对象流(操作对象的)

ObjectInputStream

readObject()--->Object--->子类对象即可。

ObjectOutputStream

writeObject(Object obj)

没有实现Serializable接口报错:java.io.NotSerializableException: com.qf.demo02.Person

就是说Person这个类,没有被序列化。没有实现Serializable接口。

java.io.Serializable接口:类要想具有序列化的功能,那么需要实现java.io.Serializable接口的类启用。 如果没有实现该接口,那么类的实例不会具有序列化和反序列化的功能。

该接口没有任何的方法需要实现。我们称为“标记接口”。

序列化和反序列化:

序列化:将对象,转为一系列的二进制编码。p1--->0101010101011....

反序列化:将二进制数值,再转为对象的过程,就叫反序列化。0101010101011....--->p1

serialVersionUID,每一个实现java.io.Serializable的类,表示能够被序列化和反序列化。都需要提供一个serialVersionUID序列化的版本号。如果代码中没有显示的提供,那么程序中自动生成(类中的结构:属性,方法)。序列化的对象的serialVersionUID和反序列化回来的时候serialVersionUID要对应上,否则异常:java.io.InvalidClassException

在每个类实现java.io.Serializable接口的时候,提供一个固定的serialVersionUID。

构造方法:

ObjectOutputStream(OutputStream out)

创建一个写入指定的OutputStream的ObjectOutputStream。

ObjectInputStream(InputStream in)

创建从指定的InputStream读取的ObjectInputStream。

序列化的注意点:对象

1、对象的属性能够被序列化,static的属性不能被序列化。

2、transient修饰符,使用该修饰符修饰的属性,不会被序列化的。

2.2TCP协议和UDP协议

2.2.1TCP协议

1、面向连接,数据传递的时候很安全。

三次握手,四次挥手。

2、因为面向连接,所以传递的效率较低。

3、面向连接,数据安全的。可以传递大量的数据。

4、服务端和客户端

服务端:提供服务的

客户端:来访问服务端,获取数据

客户端登录,数据下载,文件传输。。

2.2.2UDP协议:

1、面向无连接,数据传的时候不是很安全。

2、因为面向无连接,效率很高。

3、UDP

4、没有客户端和服务端的概念。叫做发送方,另一个叫接收方。

2.3、网络编程的三要素

2.3.1、协议

理解为是规则,网络上的双方,都要共同遵守的规定。

TCP/UDP

2.3.2、IP地址

在网络中的主机的唯一标识。

2.3.3、port端口

网络程序的唯一标识。int类型的整数。0-65535。

同一台电脑上一个端口只能被一个网络程序所占用。

A程序:占用端口9527。启动后,正在使用9527端口,那么其他的程序如果还使用9527端口,就会报错,端口已经被占用。

2.4、网络编程相关的类:

2.4.1、InetAddress

Java中用于描述IP的类

2.4.2、Socket

基于TCP协议的客户端的表示。

2.4.3、ServerSocket

基于TCP协议的服务端的表示。

2.5、TCP编程的流程

服务端流程
step1:创建ServerSocket,一个服务端的程序:

step2:等待客户端申请链接,accept()接收链接。——>Socket

step3:创建流:InputStream,OutputStream

step4:关闭链接,断开资源

客户端流程

step1:创建Socket,客户端的程序

申请链接服务器:(服务器的ip地址和port)

step2:创建流:InputStream,OutputStream

step3:关闭链接,断开资源

相关文章

  • java网络编程---网络编程三要素、对象流

    一、重点知识 网络参考模型概念七层,我们一般看为四层 UDP每个包64kb 查看ip命令:ipconfig 测试i...

  • Java基础09网络编程

    Java 基础08GUI 熟练掌握什么是网络编程,网络编程的三要素,Socket原理机制、UDP传输、TCP传输等...

  • Java网络编程(第四版) PDF 超清版

    《Java网络编程(第四版)》是一本关于Java编程相关的电子书资源,介绍了关于Java、网络编程、Java编程方...

  • 网络编程的理解

    1.网络编程:用JAVA语言实现计算机间书籍的信息传递和资源共享 网络编程三要素:A:IP地址,每台计算机的唯一标...

  • Android应用开发:网络编程2

    网络编程 Java基础:网络编程 Uri、URL、UriMatcher、ContentUris详解 Android...

  • Http协议

    网络编程 Java基础:网络编程 Uri、URL、UriMatcher、ContentUris详解 Android...

  • 日程安排9.15~9.21

    我的补题清单 here JAVA编程思想 补题清单 图论网络流专辑

  • Chapter 12 . 网络编程

    阅读原文 Chapter 12 . 网络编程 12.1网络编程概述 • Java是 Internet ...

  • java文艺复兴

    JAVA 语言基础 理解面向对象OO 常用类 集合 IO 多线程 GUI(??) 网络编程 JAVA WEB (...

  • Java NIO

    书本 Netty权威指南netty实战O’Reilly的《Java nio》Unix网络编程 《unix网络编程》...

网友评论

    本文标题:java网络编程---网络编程三要素、对象流

    本文链接:https://www.haomeiwen.com/subject/vdptnhtx.html