震惊:Java的socket编程还需要学习路线?

66 阅读1分钟

什么?震惊!socket编程还需要学习路线?不就是创建一个socket、绑定端口、监听请求、发送接受数据就行了吗?一百行代码都不到的东西,怎么还会存在学习路线了呢,震惊是肯定的了。

那么下面,我们就来掰扯掰扯,您是否真的理解了socket编程呢?看看下面几个问题:

1、服务端如果只是new了一个socket,没有调accept,客户端可以连接到服务端吗?

2、服务端只有单个线程accept,客户端瞬间大量请求过来,服务端能都接受住吗?

3、服务端accept了一个请求过来,但是迟迟不读取相关数据,而客户端一直在发数据,会发生什么事情呢?

4、客户端每次发起新请求都用新端口,会发生什么事情呢?如何解决这个问题呢?

5、主动关闭套接字应该是由服务端还是客户端来做呢?如果是服务端做会出现什么后果呢?

6、一方关闭一方不关闭套接字会出现什么问题呢?影响是什么呢?

7、端口大量处于SYN_SEND等状态,知道怎么模拟出来吗?注意,就使用简单的socket编程。

路线是怎么样的?

当然,如果你还不精通的话,我就来分享一些学习技巧了,学这个东西,就是要从顶层到底层逐层拉通,每一层的关系要理解清楚,在什么场景下会遇到问题,都搞清楚。

当然就明白了了。