网络基础知识

网络

网络五层模型

物理层

物理层:所有为了搭建网络所使用的物理控件

数据链路层

数据链路层:使设备之间联通

网络层

网络层:给每个设备起到一个标识作用

 

公网服务器无法主动联系你的电脑,你的电脑可以连接公网服务器,每次重新启动会分配不同的ip

传输层

传输层:以什么样的方式发送

TCP协议:传输控制协议 规定了发送与接受方应该以一种什么样的发式传输数据。

协议特点:面向链接的,有序的,有效的,安全的传输层协议。

应用层

应用层:我发送的怎样的数据

套接字

我们本次使用TCP链接,所以服务器创建的应该是可以接收TCP链接的套接字 套接字:Socket,是网络数据处理的基本工具,负责网络数据的出入口 服务器套接字和普通套接字是有区别的,这里我们实现服务器,所以使用网络工具就是服务器套接字 ServerSocket是JAVA提供的,基于BIO的网络服务器套接字,在java.net这个包里面 创建对象的时候,需要指定ServerSocket中的端口号 port

服务器和客户端连接、对答并关闭

服务器代码:

//服务器的启动以及逻辑
	public static void main(String[] args) {
		//我们本次使用TCP链接,所以服务器创建的应该是可以接收TCP链接的套接字
		//套接字:Socket,是网络数据处理的基本工具,负责网络数据的出入口
		//服务器套接字和普通套接字是有区别的,这里我们实现服务器,所以使用网络工具就是服务器套接字
		//ServerSocket是JAVA提供的,基于BIO的网络服务器套接字,在java.net这个包里面
		//创建对象的时候,需要指定ServerSocket中的端口号 port
		try {
			ServerSocket ss = new ServerSocket(10086);
			//阻塞后面进行
			Socket s = ss.accept();
			InputStream is = s.getInputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(is));
			OutputStream os= s.getOutputStream();
			PrintWriter pw = new PrintWriter(os);
			Scanner scanner = new Scanner(System.in);
			while(true) {
				String str = br.readLine();
				System.out.println(str);
				if(str.equals("bye")) {
					break;
				}
				String content = scanner.nextLine();
				pw.println(content);
				pw.flush();
				if(content.equals("bye")) {
					break;
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
    }

客户端代码:

//客户端的启动以及逻辑
	public static void main(String[] args) {
		//127.0.0.1叫做回环地址
		try {
			Socket skt = new Socket("127.0.0.1", 10086);
			OutputStream os = skt.getOutputStream();
			PrintWriter pw = new PrintWriter(os);
			InputStream is = skt.getInputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(is));
			Scanner scanner = new Scanner(System.in);
			
			while(true) {
				String content = scanner.nextLine();
				pw.println(content);
				pw.flush();
				if(content.equals("bye")) {
					break;
				}
				
				String str = br.readLine();
				System.out.println(str);
				if(str.equals("bye")) {
					break;
				}
			}
		}catch (UnknownHostException e){
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		}
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值