Java-网络编程
2021-08-25 20:30:01 2 举报
AI智能生成
登录查看完整内容
Java-网络编程
作者其他创作
大纲/内容
链接多个计算机,资源共享,信息交流
定义
局域网,城域网,广域网
分类
IP:确定位置
端口:逻辑地址,区分不同的服务
协议:http、https、ftp、smtp、ip :确保听懂
https://www.baidu.com/80
协议://ip地址/默认互联网端口:80
网络三大基石
域名解析,会将一个域名解析为一个对应的ip地址
域名
OSI/RM
TCP/IP模型
模型
防火墙
传输控制协议的缩写
需要创建连接
安全
传输数据多
只能一对一
TCP
用户数据报协议
不需要创建连接
不安全
传输数据有限制
支持一对多,多对一
UDP
Socket编程
概念
ServerSocket(端口):构造器
Socket accept():阻塞方法(等待接收数据)
setSotimeout(int):设置的超时时间
close():关闭
服务端:ServerSocket
Socket(IP地址,端口):构造器
getInputStream():获取输入流准备接收数据
getOutputStream():获取输出流准备发送数据
getChannel():返回与此文件输出流关联的唯一文件通道对象
用户端:Socket
基于TCP的套接字
send(DatagramPacket):发送包
receive(DatagramPacket):接收包
发送/接收端:DatagramSocket
byte[] getDate():返回数据缓冲区
int getLength():返回要发送的数据的长度或接收的数据的长度
setData(byte[]):设置此数据包的数据缓冲区。
setPort():设置要将此数据报发送到的远程主机上的端口号。
发送/接收数据包:DatagramPacket
基于UDP的套接字
InetSocketAddress
SocketAddress
getByName(String)
getHostAddress()
getLocalHost()
InetAddress
其他
ServerSocket server = new ServerSocket(8888);
1. 建立TCP服务端Socket服务(设置本地端口号)
Socket client = server.accept();
2. 通过server的accept()获取客户端对象(阻塞)
InputStream is = client.getInputStream();
3. 通过client获取读取流,读取客户端发送的数据
byte[] buf = new byte[1024];
int length = is.read(buf);
4. 通过流对象操作数据
client.close();
5. 关闭资源
服务端
1. 建立TCP客户端Socket服务(指定IP和端口号)
OutputStream os = client.getOutputStream();
2. 通过Socket的getOutputStream()获取流对象
或者:byte[] buf = \"hello server\".getBytes();
String str= \"hello server\";
或者:os.write(buf);
os.write(str.getBytes());
3. 通过流对象的操作方式传输数据
4. 关闭资源
客户端
TCP编程
DatagramSocket send = new DatagramSocket();
1. 建立UDP的Socket服务
String msg = \"udp Hello\";
DatagramPacket(字节数据,字节数据长度,目标地址,对方端口)
2. 封装数据包
send.send(packet);
3. 通过Socket的send()发送数据
send.close();
发送端
DatagramSocket rec = new DatagramSocket(10002);
1. 建立UPD的Socket服务,必须指定端口
2. 定义数据包用于接收数据
rec.receive(packet);
3. 接收数据
packet.getData();
packet.getAddress();
packet.getLength();等
4. 通过packet的相应方法获取数据
rec.close();
接收端
UDP编程
Socket编程实例
网络编程
0 条评论
回复 删除
下一页