编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

二、网络IO原理-创建ServerSocket-彻底弄懂IO

wxchong 2024-08-12 01:50:12 开源技术 23 ℃ 0 评论

## 示例:

**创建ServerSocker过程:**


//创建ServerSocket并注册端口号8090
		ServerSocket server = new ServerSocket(8090);
		while (true) {//循环
			final Socket socket = server.accept();//获取数据
System.out.println("ClientSocket:" + client.getPort());
			new Thread(new Runnable() {//如果获取到数据则开辟一个线程去处理
				
				@Override
				public void run() {
					try {
						InputStream inputStream = socket.getInputStream();
						BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
						String text = null;
						while ((text = bufferedReader.readLine()) != null) {
							System.out.println(text);
						}
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
				}
			}).start();
		}

全图(下面有分解图):

图解:


释义:


1.IO的发展历程:操作系统内核-BIO-NIO-SELECTER-EPOLL。

2.计算机开机启动,首先进入内存的第一个程序为操作系统的内核。系统内核负责对计算机进行统一管理和分配,同时生成一个GDT(全局描述符表),GDT记录内存空间划分,划分为用户空间、内核空间等。

3.用户空间与内核空间的划分是用于保护计算机,用户空间无法修改内核空间数据。

4.普通应用需要调用磁盘数据时是存在IO成本的,他必须去调用内核帮他做磁盘及其他硬件的操作。

5.如果普通应用想调用磁盘,必须通过内核提供的接口,内核提供的这一系列接口叫做系统调用软中断(system-core)。

6.由于存在用户空间和内核空间的保护模式,因此普通应用想调用内核提供的接口,必须通过中断系统。

7.中断系统分为软中断和硬中断。普通应用使用的是软中断(80中断),外部硬件等使用硬中断,硬件的每一次移动产生电信号,反馈给CPU,CPU通过硬件中断所产生的中断号找到硬件对应的驱动程序,然后再使用回调方法使用方。

8.普通应用(APP)?内核?存在成本。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表