一、Socket进程间通信
基本特点:
socket是一种接口技术,被抽象成一个文件来操作,可以让同一台计算机进
程间通信,也可以让不同的计算机的进程通信(网络)
同一台计算机的进程间通信:
底层需要借助socket文件,进行同一计算机
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
功能:创建socket对象
domain:
AF_UNIX, AF_LOCAL 本地通信,进程间通信
AF_INET 基于IPv4地址通信
AF_INET6 基于IPv6地址通信
type:
SOCK_STREAM 数据流协议
SOCK_DGRAM 数据报协议
protocol:
特殊的通信协议,一般不用,写0即可
返回值:成功返回socket描述符,失败返回-1
int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
功能:绑定socket和通信地址
socket:socket描述符
addr:
实际传递的是sockaddr_un或者sockaddr_in,但是要把它们转换成为sockaddr类型
#include<sys/un.h> [vim /usr/include/linux/un.h]
struct sockaddr_un
{
__kernel_sa_family_t sun_family; //创建socket时domain写什么就填什么