Linux网络编程--socket

1、socket的核心思想是,作为服务器间的进程间通信的最底层的实现,常用的大部分网络协议都是基于socket实现。

Linux网络编程--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中。

下面是服务器端的命令:

Linux网络编程--socket

在客户端上,输入如下命令:

Linux网络编程--socket

(2)传文件

与上述服务器端类似,把服务器端和shell重定向相结合,将接收到的内容保存到文件,而客户端直接发送一个文件,即可完成文件的传输。

Linux网络编程--socket

下面是客户端程序:

Linux网络编程--socket

上一篇:浅谈Metaspace内存溢出原因及JVM参数设置


下一篇:第二章 简单的HTTP协议