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

下面是客户端程序:

转载于:https://www.cnblogs.com/zhouhaibing/p/7669278.html

Linux网络编程--socket相关推荐

  1. Linux 网络编程——socket 网络编程

    文章目录 一.网络基础 TCP/UDP对比 TCP/IP协议族体系 socket IP地址 IP地址转化API inet_addr() inet_aton() inet_ntoa() inet_pto ...

  2. Linux网络编程——socket、bind、listen、accpet、connect、read和write

    Linux网络编程 基础理论 1.TCP/UDP/端口号 2.字节序 一.socket服务器与客户端的开发步骤 二.具体使用步骤 1.socket(创建连接协议) 2.bind(地址准备好) 3.li ...

  3. Linux网络编程(Socket)

    目录 网络编程(Socket)概述 引入 网络编程通识扫盲 socket套接字 套接字描述符 字节序 socket编程步骤 Linux提供的API简析 创建套接字即连接协议[socket](服.客) ...

  4. 27.Linux网络编程socket变成 tcp 高并发 线程池 udp

    好,咱们开始上课了,从今天开始咱们连续讲 8 天的,网络编程这个还是在linux环境下去讲,咱们先看一下咱们这 8 天都讲什么东西,跟大家一块来梳理一下,你先有个大概的印象,这些你也不要记,那么网络编 ...

  5. Linux网络编程——socket编程

    一.socket socket 网络套接字一个文件文件描述符指向一个套接字(该套接字内部由内核借助两个缓冲区实现(接收缓冲区和发送缓冲区))通讯过程中,套接字一定是 [成对] 出现的. 二.网络字节序 ...

  6. linux网络编程socket,Linux网络编程入门

    socket又叫做套接字,网络编程又叫做套接字编程.而socket地址也称为套接字地址,可以理解为计算机的网络地址. 1.理解socket地址 假设小明同学想给女神打电话需要知道对方的电话号码才能继续 ...

  7. Linux网络编程 | Socket编程(一):Socket的介绍、UDPSocket的封装、UDP服务器/客户端的实现

    目录 套接字编程 Sockaddr结构 字节序 地址转换 常用套接字接口 UDP的通信流程 UDPSocket的封装 UDP服务器 UDP客户端 套接字编程 所谓套接字(Socket),就是对网络中不 ...

  8. Linux网络编程 | socket选项设定 及 网络信息API

    文章目录 读取和设置 socket 选项 SO_REUSEADDR SO_RCVBUF 和 SO_SNDBUF SO_RCVLOWAT 和 SO_SNDLOWAT SO_LINGER 选项 网络信息A ...

  9. Linux 网络编程socket错误分析

    socket错误码: EINTR: 4 阻塞的操作被取消阻塞的调用打断.如设置了发送接收超时,就会遇到这种错误. 只能针对阻塞模式的socket.读,写阻塞的socket时,-1返回,错误号为INTR ...

  10. [Linux网络编程]Socket套接字

    socket 的原意是"插座",在计算机通信领域,socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式.     通过 socket 这 ...

最新文章

  1. 使用man在线手册页
  2. 一个几何不等式的最佳常数
  3. adb提取安装的apk
  4. leader选举的原理
  5. centos mysql 新增用户
  6. Zoom Host可以真正看到您的所有私人消息吗?
  7. 使用React hooks,些许又多了不少摸鱼时间
  8. hbase java client 简介_hbase Java client(Release 1.0)
  9. lpop 原子_从夸克到原子,到元素周期表
  10. 2019最受欢迎语言_2019年100最受欢迎的免费在线课程
  11. PLC可编程控制器实验
  12. 技术管理之巅-如何从零打造高质效互联网技术团队?
  13. delphi fastreport4 安装
  14. 计算电压电流看一下大家可以解出来吗?
  15. caffe学习系列:训练自己的图片集(超详细教程)
  16. 超微服务器安装操作系统,超微服务器bios设置
  17. 生物信息学算法之Python实现|Rosalind刷题笔记:013 随机DNA序列
  18. 谷歌JsonObject
  19. mysql引擎与优化
  20. 深度学习入门笔记(三):求导和计算图

热门文章

  1. java注释html警告,Javadoc中允许的HTML标记
  2. 广州元宇宙10条(附pdf下载地址)
  3. Failed to connect to Etherscan API at url https://api-rinkeby.etherscan.io/api
  4. 区块链 交易怎么验证是否被篡改 SPV验证
  5. kubernetes Ingress是什么
  6. SpringBoot学习(一)初识SpringBoot、第一个SpringBoot程序
  7. pythonexcel怎么合并_Python把多个Excel合并成一个Excel
  8. react刷新页面_【跟着官网学React】Hello World
  9. html中radio实现互斥
  10. Happy Week