网络编程(源码+lw+部署文档+讲解等)

前言

🌞博主介绍:✌全网粉丝15W+,CSDN特邀作者、211毕业、高级全栈开发程序员、大厂多年工作经验、码云/掘金/华为云/阿里云/InfoQ/StackOverflow/github等平台优质作者、专注于Java、小程序技术领域和毕业项目实战,以及程序定制化开发、全栈讲解、就业辅导✌🌞

👇🏻 精彩专栏 推荐订阅👇🏻
2023-2024年最值得选的微信小程序毕业设计选题大全:100个热门选题推荐✅

2023-2024年最值得选的Java毕业设计选题大全:500个热门选题推荐✅

Java精品实战案例《500套》

微信小程序项目精品案例《500套》

💯文末获取源码+数据库💯
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

网络编程

使用ip地址来确定目标主机,使用端口号来确定哪个进程

使用

UDP编程

原理

通过传输层,将数据转换为数据包发送

udp协议是无连接的、不可靠的

发送端步骤

  • 创建发送端的socket对象
  • 把要发送的数据封装成数据报包(五个参数的)
  • 利用send方法发送
  • close

接收端步骤

  • 创建接收端的socket对象
  • 创建用于接收的数据报包(此时是空包)
  • 利用receive方法去接收数据报包(接收完了后包里才有数据)
  • 解析数据报包
  • close

DatagramSocket

此类表示用来发送和接收数据报包的套接字。

构造方法

DatagramSocket(int port) 创建数据报套接字并将其绑定到本地主机上的指定端口。

成员方法

voidreceive(DatagramPacket p) 从此套接字接收数据报包。
voidsend(DatagramPacket p) 从此套接字发送数据报包。

DatagramPacket

此类表示数据报包。

构造方法

构建用法发送的数据报包

DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。

构建用于接收的数据报包

DatagramPacket(byte[] buf, int offset, int length) 构造 DatagramPacket,用来接收长度为 length 的包,在缓冲区中指定了偏移量。

成员方法

byte[]getData() 返回数据缓冲区。
intgetLength() 返回将要发送或接收到的数据的长度。
intgetOffset() 返回将要发送或接收到的数据的偏移量。

注意:如果要想实现互相聊天的功能,必须使用多线程,否则会产生只能你发一句然后我等待之后才能发送的情况,因为是串行的

TCP编程

原理

服务端创建一个ServerSocket,利用accept方法侦听客户端的连接,以此来获取Socket对象,可以从中获取输入输出流与客户端通信

客户端创建客户端的Socket对象,可以从中获取输入输出流与服务端通信

TCP协议是有连接的、可靠的;建立连接是在网际层

客户端步骤(Client)

  • 创建客户端Socket对象
  • 从中获取输入输出流
  • 从输入 输出流中读取 写入 数据
  • close

服务端步骤(Server)

  • 创建服务端的Socket对象 ServerSocket
  • 利用accept方法去建立连接,得到Socket对象
  • 从socket对象中获取输入 输出流
  • 可以利用输入输出流 读写数据
  • close

Socket

此类实现客户端套接字(也可以就叫“套接字”

构造方法

Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。

成员方法

InputStreamgetInputStream() 返回此套接字的输入流。
OutputStreamgetOutputStream() 返回此套接字的输出流。
voidshutdownOutput() 禁用此套接字的输出流

socket.getInetAddress 可以获取正在通信的ip地址

ServerSocket

此类实现服务器套接字

构造方法

ServerSocket(int port) 创建绑定到特定端口的服务器套接字。

成员方法

Socketaccept() 侦听并接受到此套接字的连接

必须要先启动服务端再启动客户端,否则会抛出连接异常

java.net.ConnectException: Connection refused: connect

socket的半关闭

shutdownOutput() 禁用流

在实现客户端上传文件,服务端给出反馈的时候,如果不禁用流的话会造成服务端一直等待客户端发送而不继续往下执行的情况,因为服务端无法知道客户端已经发送完毕,因此需要使用shutdownOutput() 关闭流来通知服务端,这就是半关闭。如果直接调用流的close方法的话,会直接造成全关闭导致连接断开

源码获取

有疑问私信询问我即可~
大家点赞、收藏、关注、评论啦
精彩专栏推荐订阅:在下方专栏👇🏻
Java精品实战案例《500套》
微信小程序项目精品案例《500套》

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值