网络编程

前置:网络通信

通信架构:

网络编程_第1张图片

网络编程_第2张图片


网络编程_第3张图片

------------------------------------------

------------------------------------------

网络通信三要素:

网络编程_第4张图片

网络编程_第5张图片

一 IP:

Ip地址:

网络编程_第6张图片

网络编程_第7张图片

Ip域名:(ip和域名都可以访问该网站)

网络编程_第8张图片

如果是第一次进行访问,自身(dns服务器)电脑上没有储存该网址,则会放松到网络运营商来寻找。

网络编程_第9张图片

IntAddress:JAVA提供的代表Ip地址的类。

网络编程_第10张图片

二:端口号

网络编程_第11张图片

方便信息准确发送到指定应用程序

三:通信协议:

网络编程_第12张图片

网络编程_第13张图片

网络编程_第14张图片

UDP协议:

通信效率高,无连接,不可靠

网络编程_第15张图片

注意一个小包最多是64kb则在服务端创建接收包大小一次也不能超过64kb

TCP协议:

网络编程_第16张图片

三次握手:相当于,客户端和服务端,都进行一次信息收发。确保对方能够收发。

网络编程_第17张图片



客户端和服务端都是可以进行收发消息的

TCP通信:

发送信息和接收信息是不冲突的

服务端和客服端的数据输出形式应一一相同

接收方法(读取)也是一一对应

当服务端/客户端断开连接就会报错。

客户端的开发:

网络编程_第18张图片

网络编程_第19张图片

网络编程_第20张图片

网络编程_第21张图片

服务端的开发:

网络编程_第22张图片

网络编程_第23张图片

当通过socket建立连接以后,无论是发的快还是收的快,都没有问题,会在读取代码块等待读取数据/缓存数等待服务端运行到读取。才会继续运行

多发多收:

网络编程_第24张图片

提示用户服务端/客户端断开连接

网络编程_第25张图片

网络编程_第26张图片

特殊用法:与多个客户端同时通信(服务端/用户的多开)

需要使用多线程来实现

网络编程_第27张图片

网络编程_第28张图片

这时每次启动创建多开的客户端接收的数据都能够建连接实现多通信

追踪用户的上下线:

网络编程_第29张图片

UDP通信:

可以直接进行多开。

网络编程_第30张图片

网络编程_第31张图片

如果网络断开(盘子的东西其中一部分丢失)也不会重新发送。只会将文件分为多个64kb发送

客户端,服务端的创建:

网络编程_第32张图片

public DatagramPacket(byte buf[], int Length,
                      InetAddress address, int port)
参数一:封装要发出去的数据。
参数二:发送出去的数据大小(字节个数)
参数三:服务端的IP地址(找到服务端主机)
参数四:服务端程序的端口。

客户端在创建时:端口可以是随机的也可以直接指定;但服务端的端口是自己设定的

需要先启动服务端,再启动客户端。 否则无法接收数据。

注意:数据包发送的数据包,包括数据包(客户端)的端口,ip等

以下为一收一发固定内容:

网络编程_第33张图片

服务端会在接收数据处的地方停留,等待接收数据后才会执行下面的代码。

网络编程_第34张图片

以下是自定义内容收发(反复收发):

网络编程_第35张图片

idea默认是单开项目(客户端),如果需要进行多开,设置即可

你可能感兴趣的:(网络)