socket 在Unix domain的使用】的更多相关文章

原文地址:https://www.cnxct.com/default-configuration-and-performance-of-nginx-phpfpm-and-tcp-socket-or-unix-domain-socket/ 前几天看到一篇博客,提到php所在服务器在大并发情况下,频繁创建TCP短连接,而其所在服务器的2MSL时间过长,导致没有端口可用,系统无法创建TCP socket,而大量报错.博主在后面给的解决方案是减少2MSL的时间,尽快清除TIME_WAIT状态的TCP连接…
UNIX Domain Socket IPC socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket.虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包.计算校验和.维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程.UNIX域套接字与TCP套接字相比较,在同一台主…
server.c #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <sys/un.h> #include <pthread.h> #include <sys/syscall.h> #define UNIX_DOMAIN "/tmp/test" void *thre…
一.UNIX Domain Socket 概念: UNIX Domain Socket是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC) 特点: 1. 它不需要经过网络协议栈,不需要打包拆包.计算校验和.维护序号和应答等 2. 只是将应用层数据从一个进程拷贝到另一个进程. 工作模式: SOCK_DGRAM     类似于UDP SOCK_STREAM    类似于TCP 用途: UNIX Domain Socket可用于两个没有亲缘关系的进程,是全双工的,是目前使用最广泛的IP…
本文记录了因为一个简单的日志需求,继而对linux环境下syslog.rsyslog.unix domain socket的学习.本文关注使用层面,并不涉及rsyslog的实现原理,感兴趣的读者可以参考rsyslog官网.另外,本文实验的环境实在debian8,如果是其他linux发行版本或者debian的其他版本,可能会稍微有些差异. 需求: 工作中有一个在Linux(debian8)环境下运行的服务器程序,用python语言实现,代码中有不同优先级的日志需要记录,开发的时候都是使用pytho…
目录 简介 什么是Unix domain Socket 使用socat来创建Unix Domain Sockets 使用ss命令来查看Unix domain Socket 使用nc连接到Unix domain Socket服务 总结 简介 之前的文章我们讲到了Socket中的Stream Socket和Datagram Socket,这两种Socket通常分别是基于tcp和udp协议来进行数据的传输.这两种Socket都有一个共同的特点,那就是需要一个IP地址和端口来建立客户端和服务器端的连接.…
Linux系统有多种进程间通信方式,如信号.消息队列.管道等,socket是其中一种,socket使用unix domain 模式进行进程间通信 //服务端代码 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h> #define UNIX_SERV "/tmp/unix_serv…
错误提示: psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?  出现该问题的很多,以下是目前碰到的几种情况,之后碰到继续补充:  1.删除了/tmp路径中的.s.PGSQL.5432 与.…
主要注意流程: STREAM SOCKET: Server :  socket() --->  bind() ---> listen()  ---> accept() Client:    scoket() ---> connect() 参考文章一篇就够:http://troydhanson.github.io/misc/Unix_domain_sockets.html 自己写的 一个 Server 和 一个Client: //Server // // unix_domain_se…
在项目中使用postgresql数据库时要求在windows和linux双平台兼容.于是在windows下使用的接口在linux下爆出异常: psql:connections on Unix domain socket "/tmp/.s.PGSQL.5432" 经过分析和查看文档解决了这个问题: 1.原因:这是由于在linux下连接pg时使用了默认的unix domain socket方式连接pg时出现的,并且pg的端口运行在非默认端口上(默认端口是5432).在windows下同样的…