您的位置:首页 > 编程语言

域套接字代码示例(1)

2015-12-27 17:38 295 查看
使用socketpair可以在有亲缘关系的进程间(如父子进程)使用域套接字进行通信。

#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <string.h>
#include <iostream>

using namespace std;

int main()
{
int sockfd[2];
if (socketpair(AF_LOCAL, SOCK_STREAM, 0, sockfd) < 0)
{
cout << "fail to create socket pair" << endl;
return -1;
}

int iRet = fork();
if (iRet < 0)
{
cout << "fail to fork child" << endl;
return -1;
}
else if (iRet > 0)
{
// parent
close(sockfd[1]);
char acSend[] = "how are you";
write(sockfd[0], acSend, strlen(acSend));
char acRecv[20] = { 0 };
read(sockfd[0], acRecv, sizeof(acRecv));
cout << "parent recv: " << acRecv << endl;
}
else
{
// child
close(sockfd[0]);
char acRecv[20] = { 0 };
read(sockfd[1], acRecv, sizeof(acRecv));
cout << "child recv: " << acRecv << endl;
char acSend[] = "fine, thank you";
write(sockfd[1], acSend, strlen(acSend));
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: