linux网络编程(unix域流式套接字)
2015-06-14 11:43
615 查看
unix域套接字--流式
1. 头文件
#include <sys/un.h>
2. 数据结构
struct sockaddr_un {
sa_family_t sun_family;
// __SOCKADDR_COMMON (sun_);
// #define __SOCKADDR_COMMON(sa_prefix) \
// sa_family_t sa_prefix##family
// 替换原理,带参数的宏,实参替换形参(整个宏中所有的)
char sun_path[108]; // 字符串(unix域套接字文件的名)
};
3. 服务端流程
1. 创建套接字
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
2. 绑定地址到socket
struct sockaddr_un server_addr;
server_addr.sun_family = AF_UNIX;
strcpy(server_addr.sun_path, "mypath");
ret = bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
3. 设置为监听模式
ret = listen(sockfd, 10);
4. 接收请求
clientfd = accept(sockfd, NULL, NULL);
5. 接收数据
ret = recv(clientfd, buf, sizeof(buf), 0);
6. 发送数据
ret = send(clientfd, buf, len, 0);
7. 关闭套接字
close(clientfd);
close(sockfd);
4. 客户端流程
1. 创建套接字
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
2. 连接服务器
struct sockaddr_un server_addr;
server_addr.sun_family = AF_UNIX;
strcpy(server_addr.sun_path, "mypath");
ret = connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
3. 发送数据
ret = send(clientfd, buf, len, 0);
4. 接收数据
ret = recv(clientfd, buf, sizeof(buf), 0);
5. 关闭套接字
close(sockfd);
1. 头文件
#include <sys/un.h>
2. 数据结构
struct sockaddr_un {
sa_family_t sun_family;
// __SOCKADDR_COMMON (sun_);
// #define __SOCKADDR_COMMON(sa_prefix) \
// sa_family_t sa_prefix##family
// 替换原理,带参数的宏,实参替换形参(整个宏中所有的)
char sun_path[108]; // 字符串(unix域套接字文件的名)
};
3. 服务端流程
1. 创建套接字
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
2. 绑定地址到socket
struct sockaddr_un server_addr;
server_addr.sun_family = AF_UNIX;
strcpy(server_addr.sun_path, "mypath");
ret = bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
3. 设置为监听模式
ret = listen(sockfd, 10);
4. 接收请求
clientfd = accept(sockfd, NULL, NULL);
5. 接收数据
ret = recv(clientfd, buf, sizeof(buf), 0);
6. 发送数据
ret = send(clientfd, buf, len, 0);
7. 关闭套接字
close(clientfd);
close(sockfd);
4. 客户端流程
1. 创建套接字
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
2. 连接服务器
struct sockaddr_un server_addr;
server_addr.sun_family = AF_UNIX;
strcpy(server_addr.sun_path, "mypath");
ret = connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
3. 发送数据
ret = send(clientfd, buf, len, 0);
4. 接收数据
ret = recv(clientfd, buf, sizeof(buf), 0);
5. 关闭套接字
close(sockfd);
相关文章推荐
- linux网络编程(组播)
- Android弱网测试中关于网络检测的一些借鉴方法
- linux 网络编程(广播的编程)
- linux网络编程(如何编写一个UDP通信程序)
- windows 8 设置hyper-v网络设置
- 一起学习CC3200系列教程之2个TCP_非阻塞及阻塞设置
- 计算机网络--物理层 的一点总结
- ARM硬件平台上基于UCOS移植Lwip网络协议栈
- ARM硬件平台上基于UCOS移植Lwip网络协议栈
- ARM硬件平台上基于UCOS移植Lwip网络协议栈 分类: 嵌入式开发学习 2015-06-14 10:33 55人阅读 评论(1) 收藏
- unity开发:Qt C++与unity之间TCP网络通信
- 网络传输
- BZOJ 3391: [Usaco2004 Dec]Tree Cutting网络破坏( dfs )
- TCP/IP详解_网际协议IP(二)_IP数据报格式
- TCP 报文
- 关于DNS DHCP FTP TFTP HTTP WEB
- TCP/IP 11种状态变迁
- 使用TCP协议写一个可以上传文件的服务器和客户端
- Linux网络设备驱动-- skb
- HDU--杭电--2732//POJ--2711--Leapin' Lizards--网络流