-
小知识:linux命令大全之ss命令详解(获取socket统计信息)
ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请…- 1
- 0
-
小知识:4G内存服务器epoll并发量最大能达到多少?
按照题主的意思 是根据内存去算一个最大并发的连接数. 那么首先要找出来单个连接消耗内存的地方. 第一个首先是socket buffer. read 和write 分别有一个, 默认大小在 复制代码 代码如下: /proc/sys/net/ipv4/tcp_rmem (for read) /proc/sys/net/ipv4/tcp_wmem (for write) 默认大小都是87K…- 13
- 0
-
小知识:从Linux源码看Socket(TCP)的Accept
前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核)。 一个最简单的Server端例子 众所周知,一个Server端Socket的建立,需要socket、bind、listen、accept四个步骤。 今天,笔者就聚焦于…- 0
- 0
-
小知识:Nodejs创建TCP服务器
1.Nodejs提供了net模块给我们,所以我们创建TCP服务器很简单: ? 1 2 3 4 5 6 7 8 9 10 require(net).createServer(function(socket) { // new connection socket.on(data, function(data) { // got data }); socket.on(end, function(data…- 1
- 0
-
小知识:Linux fd 系列 — socket fd 是什么?
socket fd 长什么样子? 什么是 socket fd ?粗糙的来讲,就是网络 fd,比如我们最常见的 C/S 客户端服务端的编程模式,就是网络通信的一种方式。撇开底层和协议细节,网络通信和文件读写从接口上有本质区别吗? 其实没啥区别,不就是读过来和写过去嘛,简称 IO 。 我们先看一下 socket fd 是什么样子的?随便找了个进程 root@ubuntu:~# …- 0
- 0
-
小知识:Linux的Socket IO模型趣解
前言 之前有看到用很幽默的方式讲解windows的socket io模型,借用这个故事,讲解下linux的socket io模型; 老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。 他们的信会被邮递员投递到他们小区门口的收发室里。这和socket模型非常类似。 下面就以老陈接收信件为例讲解linux的 socket i/o模型。 一、同步阻塞模型…- 0
- 0
-
小知识:Linux下高并发socket最大连接数所受的各种限制(详解)
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制: [speng@as4 ~]$ ulimit -n…- 3
- 0
-
小知识:详解Linux Socket编程(不限Linux)
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用qq聊天时,qq进程怎么与服务器或你好友所在的qq进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下: 1、网络中进程之间如何通信? 本地的进程间通信(ipc)有很多种方式,…- 2
- 0
-
小知识:socket unix domain IPC的实例代码
仅供参考: 服务端:socket->bind->listen->send/recv->close 客户端:socket->bind->connect->send/recv->close ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 …- 1
- 0
-
小知识:详解nginx代理socket.io服务踩坑
nginx代理了两台socket.io服务器。socket.io的工作模式是polling升级到websocket 现象 通过nginx请求服务时,出现了大量的400错误,有时候能升级到websocket,有时候会一直报错。但是直接通过 ip+端口 访问时,100%能成功。 分析 sid sid是我们这个问题的关键。在初始创建连接时(polling模式就是在模拟一个长连接),客户端会发起这样的请求…- 5
- 0
-
小知识:docker daemon远程连接设置详解
Docker为C/S架构,服务端为docker daemon,客户端为docker.service.支持本地unix socket域套接字通信与远程socket通信。默认为本地unix socket通信,要支持远程客户端访问需要做如下设置(仅用于测试,生产环境开启会极大增加不安全性:由于开了监听端口,任何人可以通过远程连接到docker daemon服务器进行操作): 1、设置daemon监听连接…- 6
- 0
-
小知识:Linux UDP socket 设置为的非阻塞模式与阻塞模式区别
Linux UDP socket 设置为的非阻塞模式与阻塞模式区别 UDP socket 设置为的非阻塞模式 ? 1 Len = recvfrom(SocketFD, szRecvBuf, sizeof(szRecvBuf), MSG_DONTWAIT, (struct sockaddr *)&SockAddr,&ScokAddrLen); UDP socket 设置为的阻塞模式 …- 18
- 0
-
小知识:Nginx转发socket端口配置详解
Nginx 转发 socket 端口常见场景:在线学习应用,在常规功能之外,增加一个聊天室功能,后端选择 swoole 提供服务提供者,同时不想前端直接 ip:port 方式链接到服务,需要使用 Nginx 进行转发。 常规情况,我们可以在用户页面,直接建立 socket 链接,但这样的操作会暴露端口,带来一定的安全隐患,使用 Nginx 进行转发,可以隐藏端口。额外的问题就是一些 header …- 11
- 0
-
小知识:linux socket通讯获取本地的源端口号的实现方法
关于tcp ip网络通讯的资料非常多,tcp ip通过ip数据包模式进行端对端通讯。典型的tcp数据包如下 可以看到数据包包含了源端口号和目的端口号,客户端socket向服务端发起连接时,系统会给socket随机分配一个源端口号,我们可以通过getsocketname来获取连接成功的socket的原端口信息。 函数原型 ? 1 2 #include <sys/socket.h> int…- 67
- 0
-
小知识:linux IPC之socket解析及实例代码
Linux下的Socket通信是一种基于文件的IPC通信,也可以是基于其他设备的IPC通信。它可以在本机内不同进程间实现通信,也可以在实现不同主机之间的通信。 socket的创建步骤 服务端 1.通过socket()函数创建socket 2.通过bind函数绑定socket于设备地址 3.通过listen监听指定的socket 4.通过accept等待客户端的连接 客户端 1.通过socket()…- 3
- 0
-
小知识:linux ss命令详解
ss 是 socket statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 tcp 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利…- 8
- 0
-
小知识:Linux Socket 编程简介和实现
在 tcp/ip 协议中,"ip地址 + tcp或udp端口号" 可以唯一标识网络通讯中的一个进程,"ip地址+端口号" 就称为 socket。本文以一个简单的 tcp 协议为例,介绍如何创建基于 tcp 协议的网络程序。 tcp 协议通讯流程 下图描述了 tcp 协议的通讯流程(此图来自互联网): 下图则描述 tcp 建立连接的过程(此图来自互联网): 服…- 0
- 0
-
小知识:解决vscode docker插件docker.socket权限问题
解决办法, 将系统中(如果使用了remote-ssh, 则为远程服务器)所有的.vscode相关进程kill 这些进程都是在 .vscode 文件夹下, 因此可以直接搜索.vscode来kill他们, 然后再重启vscode, 就解决问题了。 知识点扩展: vscode中docker插件无法连接 报错failed to connect. is docker running error: conne…- 13
- 0
-
小知识:linux 网络编程 socket选项的实现
socket选项函数 功能:用来读取和设置socket文件描述符属性的方法 ? 1 2 3 #include <sys/scoket.h> int getsockopt ( int sockfd, int level, int option_name, void* option_value, socklen_t* restrict option_len ); int setsockop…- 2
- 0
❯
个人中心
购物车
优惠劵
今日签到
有新私信
私信列表
搜索
扫码打开当前页
返回顶部
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
猿优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!