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重定向相结合,将接收到的内容保存到文件,而客户端直接发送一个文件,即可完成文件的传输。

   

   

   下面是客户端程序:

    

 

posted on 2017-10-15 00:49  爱编程的小兵  阅读(388)  评论(0编辑  收藏  举报