JavaSE进阶 网络编程

2023-10-11  本文已影响0人  扶光_

可以让程序与网络上的其他设备中的程序进行数据交互。

一,网络通信三要素

1.1ip地址

设备在网络上的地址,是唯一标识
ipv4(32位)


ipv4地址

ipv6(128位),号称可以为地球每一个沙子编号


ipv6地址

ip地址形式

1.2端口

应用程序在设备中的唯一标识。比如别人给你发信息你要通过端口来判断是微信还是QQ消息


端口

端口号:16位的2进制 0-65536

端口类型

1.3协议:、

数据在网络中传输规则,常见udp和tcp协议
通信协议
连接和通信数据的规则被称网络通信协议

TCP协议

特点

UDP协议

使用场景,语言通话,视频会话等

二,UDP通信

DatagramPacket 数据包对象 装数据的

DatagramSocket 发送端和接收端对象
DatagramSocket类成员方法send()发送数据包 receive()接收数据包


收发

多发多收信息

反复接收数据,使用while循环

广播 组播

通信

TCP通信

tcp是一种面向连接,可靠,安全的传输数据的协议。
可进行大数据传输


tcp通信

基本操作


tcp基本操作

因为现在服务端只有一个线程,所以只能与一个客户端进行通信,不能实现同时与多个客户端消息

多发多收,实现可以同时接收多个客户端

类似于弹幕 ,汇总到一个服务端里面


image.png
image.png

利用线程来实现同时接收多个客户端的消息会出现一个问题。那就是如果有1000个用户就需要创建1000个线程,会很浪费性能,所以引入线程池处理多个客户端信息来进行优化

线程池处理

即时通信

是发给每一个个体

就是客户端发给服务器端,服务器端转发到每个管道socket上,用每个管道的输出流在推出去。


端口转发
image.png
image.png

B/S实现

浏览器访问服务端,不需要开发客户端


image.png

服务器必须给浏览器响应http协议格式的数据,才可以返回对应数据。是基于http协议


基于http协议上传
上一篇 下一篇

猜你喜欢

热点阅读