网络编程初体验

23 篇文章 0 订阅

网路编程

可以实现设备和设备之间数据的收发

三要素:IP----端口----协议
IP地址:作为设备在网络中的唯一标识
常见的IP地址有 ipv4 和 ipv6
ipv4:32比特位, 占4个字节,由点分十进制法表示
ipv6:128比特位, 占16个字节组成,由冒分十六进制表示

常见的CMD命令:
ping ip或者域名:帮助我们检查网络是否通畅
ipconfig:查本机的ip地址
特殊的ip:代表本机地址,“127.0.0.1”
在这里插入图片描述
InetAddress类
静态方法 getByName(String host)
参数说明:ip地址(点分十进制法)可以精准定位到某台设备。

端口:程序在设备中的编号, 范围0-65535之间, 但是0-1024不建议使用

协议:数据传输的规则

UDP:
特点:面向无连接, 速度比较快, 但是不安全, 有大小限制, 限制64kb
应用场景:视频会议, 或者不太重要的数据
发送端使用步骤
1.创建核心对象DatagramSocket(int port)
2.打包数据DatagramPacket(byte[] 数据, int 数据的长度, InetAddress ip地址, int 发送的端口号)
3.使用DatagramSocket的功能send(DatagramPacket dp)
4.释放资源
接受端的使用步骤:
1.创建核心对象DatagramSocket(int port),但是这个必须给端口, 而且端口和发送端发送的端口保持一致
2.创建DatagramPacket(byte[] 数据, int 有效长度)接受数据
3.调用DatagramSocket的receive(DatagramPacket)方法接受数据
4.解析数据:byte[] arr getData(); int getLength();
5.释放资源

组播: 224.0.0.0–239.255.255.255之间, 一般224.0.0.255已经被预留, 我们只能用 224.0.1.xxx以后的(范围).
注意:
组播的发送端的ip地址一定要是组播的频段的ip才可以
组播的接受端需要使用MulticastSocket这个对象
组播的接受端,必须使用 MulticastSocket的joinGroup(InetAddress.getByName(“224.0.1.0”)), 加入组播频段的ip中

广播:广播的频段是255.255.255.255,或者后缀是255的都是广播

TCP/IP
特点:面向连接, 速度比较慢, 数据安全, 没有大小限制, 数据不会丢失

客户端步骤:
1.创建客户端核心对象Socket(String 要连接的ip地址, int 要连接的端口)
2.获取输入流或者输出流来去和服务器通话
分为:输入流用来接受服务器发的数据的
输出流用来给服务器发数据用的
3.释放资源, 凡是通过Socket获取的流, 只需要将socket关闭掉即可

服务器端步骤
1.创建服务器的ServerSocket(int 端口)
2.需要调用ServerSocket的accept的方法监听客户端的连接,返回的Socket对象,是一个阻塞方法, 如果没有客户端连接, 就一直等待
3.通过Socket获取输入输出流进行对话
分为:输入流用来接受服务器发的数据的
输出流用来给服务器发数据用的
4.释放资源, socket释放掉, 不释放服务器

拓展:
打印流:输出流
PrintStream类
构造方法:
PrintStream(OutputStream out);将一条普通的输出流, 转换成打印流, 可以增强功能

成员方法:
**write(int b);**从OutputStream中继承下来, 只能写字节数据
writebyte[] arr, int start, int length);从OutputStream中继承下来, 只能写字节数据
print(跟任何数据类型);特有的方法
println(跟任何数据类型);特有的方法输出并换行

UUID类
作用: 生成一个不重复的字符串,长度36位, 去掉 “-”,是32位
UUID UUID.randomUUID(); 静态方法
toString();得到UUID的字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值