
socketpair函数概要如下:
#include
#include
int socketpair(int domain, int type, int protocol, intsv[2]);
socketpair函数需要四个参数。他们是:
套接口的域
套接口类型
使用的协议
指向存储文件描述符的指针
1. 类型参数声明了我们希望创建哪种类型的套接口。
socketpair函数的类型选择如下:
SOCK_STREAM

SOCK_DGRAM
2. 对于socketpair函数,protocol参数必须提供为0。socketpair
3. 参数sv[2]是接收代表两个套接口的整数数组。每一个文件描述符代表一个套接口,并且与另一个并没有区别。
4. 返回值:如果函数成功,将会返回0值。否则将会返回-1表明创建失败,并且errno来表明特定的错误号。
关于流程。socketpair()函数创建出两个进程,fork()之后这两个进程都会执行主程序中的代码,这个一定要注意!尤其是bind的时候,如果bind两次的话,那就会出错了。一般会在子进程里调用一个带死循环的函数,这样就好了。socketpair(这个情况的例子会在综合运用中讲解)
一下给出个简单的例子。
// 建立socket对
#include
#include
#include
#include
int main ()

{
int fd[2];
int r = socketpair( AF_UNIX, SOCK_STREAM, 0, fd );
if ( r < 0 ) {
perror( 'socketpair()' );
exit( 1 );
}
if ( fork() ) {
int val = 0;
close( fd[1] );
while ( 1 ) {
sleep( 1 );
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-37412-1.html
弃我就宰你
现在我是不赞成买外国先进装备的