1、socket的核心思想是,作为服务器间的进程间通信的最底层的实现,常用的大部分网络协议都是基于socket实现。
2、socket 是如何与最终的低层收发包建立联系的?
3、socket 是如何与VFS建立关系的?
4、TIPC与socket的关系。
5、Socket与EPOLL之间的关系
因为对于服务器端程序而言,可以同时接受很多客户端的socket连接,那么,必须实现并行处理的机制,常用的方法是多进程,也就是说,服务器端的socket一旦建立连接后,立即生成一个新的进程与客户端之间进行后续socket处理,原先的socket继续监听新的客户端请求,那么,此时就存在一个问题,那么多的客户端socket, 哪些有数据接收到了呢? 传统的方法是轮询,这个效率台低,于是使用epoll机制,只有在真正有数据待处理时才会产生事件。于是提高了处理效率。
二、socket编程举例:
1. windows socket, linux socket, python socket, linux shell socket编程。
windows socket编程
2. Linux shell socket编程举例
(1)字符串交互
服务器端: nc -l 1234 -----> 表示在本地的1234端口上启动socket监听。
客户端: nc 192.168.248.156 1234 ---> 表示连接到服务器的1234端口。
然后客户端在shell上输入的内容,就会显示在服务器端的shell 命令中,同理,服务器在shell中输入的内容会显示在客户端的shell中。
下面是服务器端的命令:
在客户端上,输入如下命令:
(2)传文件
与上述服务器端类似,把服务器端和shell重定向相结合,将接收到的内容保存到文件,而客户端直接发送一个文件,即可完成文件的传输。
下面是客户端程序: