什么?震惊!socket编程还需要学习路线?不就是创建一个socket、绑定端口、监听请求、发送接受数据就行了吗?一百行代码都不到的东西,怎么还会存在学习路线了呢,震惊是肯定的了。
那么下面,我们就来掰扯掰扯,您是否真的理解了socket编程呢?看看下面几个问题:
1、服务端如果只是new了一个socket,没有调accept,客户端可以连接到服务端吗?
2、服务端只有单个线程accept,客户端瞬间大量请求过来,服务端能都接受住吗?
3、服务端accept了一个请求过来,但是迟迟不读取相关数据,而客户端一直在发数据,会发生什么事情呢?
4、客户端每次发起新请求都用新端口,会发生什么事情呢?如何解决这个问题呢?
5、主动关闭套接字应该是由服务端还是客户端来做呢?如果是服务端做会出现什么后果呢?
6、一方关闭一方不关闭套接字会出现什么问题呢?影响是什么呢?
7、端口大量处于SYN_SEND等状态,知道怎么模拟出来吗?注意,就使用简单的socket编程。
路线是怎么样的?
当然,如果你还不精通的话,我就来分享一些学习技巧了,学这个东西,就是要从顶层到底层逐层拉通,每一层的关系要理解清楚,在什么场景下会遇到问题,都搞清楚。
当然就明白了了。