Java-网络编程(基础篇)

1. 网络编程概念

1.1 软件结构

  • C/S结构(Client/Server):客户端与服务器结构;
  • B/S结构(Browser/Server):浏览器与服务器结构;

1.2 网络编程三要素

1.2.1 IP地址
  • 互联网协议地址(Internet Protocol Address),网络设备的唯一标识
  • IP地址的两种常用的地址形式:
    • IPv4: 32位的二进制数,分为4个字节,格式为a.b.c.d,每个字节范围是0~255;
    • IPv6: 128位的二进制数,每16个字节一组,共八组,格式为a:b:c:d:e:f:g:h,每个字节范围是0~255.
1.2.2 端口号
  • 设备中进程的唯一标识,实际上是一个十进制的整数。
  • 端口号是用两个字节表示的整数,取值范围0~65535。
  • 注意:0~1024一下的端口号是系统保留使用的,程序员要使用1024以上的端口号。
1.2.3 通信协议
  • 规定计算机之间数据传输的格式。

*通信协议中两种常用的协议:

TCP(Transmission Control Prorocol): 传输控制协议。TCP是面向连接的通信协议,在发送端和接收端监理逻辑连接,再传输数据

  • 特点:保证传输数据的安全

UDP(User Datagram Protocol): 用户数据报包协议。UDP是面向无连接的协议,是不可靠协议,传输速度快,但是容易丢失数据

根据Ip找主机,根据端口号找程序,根据协议确定传输数据的格式

1.3 InetAddress类的概述

  • 一个该类对象代表一个IP地址。
1.3.1常用方法
  • (无构造方法)

  • 静态方法:

    - public static InetAddress getLocalHost()
      	  获得本地主机IP地址对象(主机名/IP地址字符串);
    - public static InetAddress getName()
      	  根据主机名或IP地址字符串获得IP地址对象。
    
  • 成员方法

    - public String getHostName():获得主机名;
    - public String getHostAddress():获得IP地址字符串。
    

2. UDP通信程序

2.1 概述

  • UDP在数据传输时,数据的发送端和接收端不建立逻辑连接。

  • 特点:

    • 面向无连接协议;

    • 资源消耗少,通信效率高,但不可靠;

    • 只负责发送,发送过程不会确认接收端是否接收到;

    • 基于数据包传输数据:将需发送的数据、源和接收端IP地址、端口号等信息封装成数据包发送;

    • 每个数据包的大小限制在64K内;

  • 使用场景:

    • 即时通讯(如qq)
    • 在线视频(如直播)
    • 网络语音通话(如微信语音聊天)
2.2 UDP通讯使用的类
2.2.1 DatagramPacket类(数据包)
2.2.1.1 概述及作用
  • 用来封装发送端或接收端要发送或接收的数据,是数据包对象
2.2.1.2 构造方法
  • 创建发送端数据包:
- DatagramPacket(byte[] buf, int length, InetAddress address, int port) 
		用于创建发送端数据包对象。

其中:buf:字节数组,封装要发送的数据

​ length:要发送的内容长度,单位:字节

​ address:接收端的ip地址对象

​ port:接收端的端口号

  • 创建接收端数据包:
- DatagramPacket(byte buf[],int length) : 用于创建接收端数据包对象

其中:buf:用于接收数据的数组

​ length: 能够接受内容的长度,即buf数组的长度,单位:字节

2.2.1.2 常用成员方法
- public int getLength():获得发送端实际发送的字节数或接收端实际接收到的字节数;
- public int getPort():获得发送端或接收端端口号
2.2.2 DatagramSocket类(发送数据包)
2.2.2.1 概述及作用
  • DatagramSocket类实例对象可用来发送和接收数据包对象
2.2.2.2 构造方法
- DatagramSocket():创建发送端的发送对象(端口号随机生成)
- DatagramSocket(int port):根据指定端口号创建Socket对象(一般用在接收端)
2.2.2.3 常用成员方法
- public void send(</
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值