网络编程
2020-09-04 10:22:25 0 举报
AI智能生成
网络编程
作者其他创作
大纲/内容
网络通信的三大要素
IP地址
连接网络的一个设备标识
IP可以直接访问服务器的,但是因为不方便进行记忆,需要使用主机名
本机回环地址 127.0.0.1 , 对应的主机名 localhost
JDK中对应的类: InetAddress
端口号
用来表示进程的逻辑地址
有效的端口范围 0 ~ 65535 ,其中 0 ~ 1024 被系统使用或保留的端口号
通信协议
TCP
面向连接的,保证数据传输的安全。有三次握手
UDP
面向无连接的,无法保证数据传输的安全。
TCP编程
客户端
1. 建立TCP客户端的socket服务 (指定服务端IP和服务端端口号)
Socket socket = new Socket("127.0.0.1",8888 );
说明 IP是服务端的IP,端口号是服务端进程的端口号
2.通过socket进行写操作
OutputStream os = socket.getOutputStream()
通过缓存流中的flush方法,实现清空缓存的操作
3. 通过socket进行读操作
InputStream is = socket.getInputStream();
4. 关闭socket对象
socket.close();
服务端
1.建立TCP服务端socket的服务(指定服务端端口号)
ServerSocket ss = new ServerSocket(8888);
2. 通过ss的accept方法来接受信息
Socket s = ss.accept();
3.通过s进行读操作
InputStream is = s.getInputStream();
如果传输的是文本,可以进行 转换流和字符缓存流的处理
如果传输的是字节文件,可以进行 字节缓存流的处理
4.通过s进行写操作
OutputStream os = s.getOutputStream();
5. 关闭socket
s.close();
说明: 一般情况下,服务端不会只运行一次。通常会将2,3,4,5的步骤放到无限循环中
UDP编程
发送端
1.建立UDP中的DatagramSocket服务
DatagramSocket ds = new DatagramSocket();
2.封装数据包DatagramPacket
DatagramPacket dp = new DatagramPacket(数据,数据大小,InetAddress对象,端口号);
说明: 1. 数据 是以 字节数组的形式存在 。 2.数据大小,表示字节数组的大小
3. 通过ds发送dp
ds.send(sp)
4.关闭DatagramSocket
ds.close();
接收端
1. 建立UDP中的DatagramSocket服务,必须设定端口号
DatagramSocket ds = new DatagramSocket(端口号);
2.建立一个空的数据包DatagreamPacket
byte[] arr = new byte[1024];
DatagramPacket dp = new DatagramPacket( arr , arr.length );
说明: arr 就是用来接收数据的数组
3. 通过ds接收dp
ds.receive(dp)
4.通过dp来获取接收的信息
dp.getData(); 获取数据
dp.getLength(); 获取数据大小
dp.getAddress() 获取发送端的IP
dp.getPort() 获取发送端的端口号
0 条评论
下一页