Java基础入门(十六)之网络编程

网络编程三要素:

  • Ip地址: 每个设备在网络中唯一标识

ipconfig 可以查看本机ip地址
ping 测试连接
IPV4 4个字节,0~255之间 Ipv6 每组4个16进制数
> 两个特殊的ip地址:
127.0.0.1 本地回路地址 代表本机 localhost
255.255.255.255 广播地址

  • 端口号:

给不同的网络程序设置了一个不同的标识 是逻辑端口 不是网线的逻辑端口 端口号由0~65535数字组成 0~1024(被系统保留)
常见端口号: mysql 3306 oracle 1521 web 80 tomcat 8080
2425 http://localhost:8080/项目名/应用java

  • 传输协议 是定义的一组通信规则 ‘

通用的网络协议Tcp/IP 包括局域网和广域网

Socket套接字

网络上具有唯一标识的ip地址和端口号的组合 用来唯一标识某个应用程序
网络通信就是Socket之间的通信,数据在两个Socket之间,听过IO流进行传输 InetAddress类 此类表示互联网协议
(IP) 地址。

  • 方法

    String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。 static InetAddress
    getByName(String host) 在给定主机名的情况下确定主机的 IP 地址。UnknowHostException异常
    static InetAddress getLocalHost() 返回本地主机。

    • UDP: 用户数据报协议

特点:面向无连接 数据不安全 速度快 不区分客户端和服务端 发送的数据大小有限制 一次不能超过64K 例如:对讲机 没有交互

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

构造方法: 无参构造 DatagramSocket()
构造数据报套接字并将其绑定到本地主机上任何可用的端口。
有参构造:DatagramSocket(int port)
创建数据报套接字并将其绑定到本地主机上的指定端口。

DatagramPacket 此类表示数据报包。

  • 构造方法:

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

  • 常用方法:

void send(DatagramPacket p) 从此套接字发送数据报包
void receive(DatagramPacket p) 从此套接字接收数据报包。
byte[] getData() 返回数据缓冲区。
void setLength(int length) 为此包设置长度
InetAddress getAddress() 返回某台机器的 IP 地址,此数据报将要发往该机器或者是从该机器接收到的。

TCP:传输控制协议

  • 特点:

面向连接(三次握手): 客户端向服务端发送请求 服务端响应请求 客户端向服务端发送数据 数据安全 速度略慢

  • 划分:分为客户端和服务端:

Socket(客户端)
InputStream getInputStream() 返回此套接字的输入流。
OutputStream getOutputStream() 返回此套接字的输出流。
InetAddress getInetAddress() 返回套接字连接的地址。

ServerSocket(服务端)
此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行某些操作,然后可能向请求者返回结果。
Socket accept() 侦听并接受到此套接字的连接。
客户端的角度:客户端向服务端发送数据是流的输出;服务端向客户端发送数据 是流的输入

猜你喜欢

转载自blog.csdn.net/xueer_z/article/details/81945263