a. 软件架构介绍
i. C/S架构:客户端/服务器 比如:QQ,百度网盘,淘宝App
ii. B/S架构:浏览器/服务器 比如:网页QQ,网页淘宝
b. 网络通信协议
i. TCP/IP协议
1) TCP协议:传输控制协议
2) IP协议:因特网协议
c. java中支持的常见协议
i. TCP协议:特点:面向连接(数据传输之前必须先建立连接,底层是通过"三次握手"建立连接)
ii. UDP协议:用户数据报协议 特点:面向无连接(数据传输时不需要关系对方是否存在,甚至不需要关系对象是否开机)
d. 网络编程的三要素
i. 网络通信协议
ii. IP地址
iii. 端口号一共有0-65535号,其中1024以下的端口被牛逼软件厂商占用!!(我们写软件时,用1024以上的)
e. 计算机小知识
i. IP地址的分类
1) IPv4:由32位二进制组成,大概42亿种IP,面临枯竭
2) IPv6:由128位二进制组成
ii. IP地址的相关命令
1) ipconfig:查看本机IP
2) ping 对方IP:测试你和对象网络是否畅通
3) 特殊的IP地址:127.0.0.1(localhost): 本机回环地址(相当于Java中this)
iii. InetAddress类的基本使用
1) InetAddress类代表IP地址类
2) InetAddress.getLocalHost();//获取主机(本机)的IP地址对象
3) InetAddress.getByName(域名/IP地址);//获取其他机器的IP地址对象
4) 成员方法
a) String getHostName();获得主机名
b) String getHostAddress();获得IP地址字符串
二. TCP通信
a. TCP通信分为客户端和服务器
b. TCP中的两个重要的类
i. Socket类,代表客户端类
ii. ServerSocket类,代表服务器端类
c. Socket类
i. 构造方法:public Socket(String ip,int port)//服务器的IP地址,服务器的端口号
ii. 常用方法
1) public OutputStream getOutputStream();获取连接通道中输出流
2) public InputStream getInputStream();获取连接通道中输入流
3) public void shutDownOutput();关闭连接通道中的输出流
4) public void shutDownInput();关闭连接通道中的输入流
5) public void close();关闭客户端对象
d. ServerSocket类
i. 构造方法:public ServerSocket(int port)指定服务器端使用的端口号
ii. 常用方法:
1) public Socket accept();接收连接到服务器的那个Socket对象,如果暂时没有客户端,该方法会阻塞
2) public void close();关闭服务器端对象
e. 简单的TCP通信实现(双向通信)
i. 代码演示
public class Socket01 {
public static void main(String[] args) throws IOException {
//1.创建Socket对象
Socket socket = new Socket("127.0.0.1",8888);
System.out.println("已经连接服务器·················");
//2.获取输出流
OutputStream outputStream = socket.getOutputStream();
//3.调用输出流的write方法
outputStream.write("我是客户端·············".getBytes());
System.out.println("已经成功发送···········");
//4.获取输入流
InputStream inputStream = socket.getInputStream();
//5.调用输入流的read方法
byte[] bs = new byte[1024];
int read = inputStream.read(bs);
System.out.println("服务器说:"+new String(bs,0,read));
System.out.println("客户端已关闭···············");
//6.释放资源
inputStream.close();
outputStream.close();
socket.close();
}
}
public class ServerSocket01 {
public static void main(String[] args) throws IOException {
//1.创建ServerSocket对象
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动············");
//2.接受连接到的客户端对象
Socket accept = serverSocket.accept();
System.out.println("有客户端进来············");
//3.获取输入流
InputStream inputStream = accept.getInputStream();
//4.调用输入流的read方法
byte[] bs = new byte[1024];
int len = inputStream.read(bs);
System.out.println("客户端说:"+new String(bs,0,len));
//5.获取输出流
OutputStream outputStream = accept.getOutputStream();
// 6.调用输出流的writer方法
outputStream.write("我已经收到了······".getBytes());
System.out.println("已成功发送·················");
System.out.println("服务器已关闭··············");
//7.释放资源
outputStream.close();
inputStream.close();
accept.close();
serverSocket.close();
}
}
一. 网络编程入门【了解】 a. 软件架构介绍 i. C/S架构:客户端/服务器 比如:QQ,百度网盘,淘宝App ii. B/S架构:浏览器/服务器 比如:网页QQ,网页淘宝 b. 网络通信协议 i. TCP/IP协议 1) TCP协议:传输控制协议 2) IP协议:因特网协议 c. java中支持的常见协议 i. TCP协议:特点:面向连接(数据传输之前必须...