UNIX Network Programming Volume 1, Third Edition [Electronic resources] : The Sockets Networking API نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

UNIX Network Programming Volume 1, Third Edition [Electronic resources] : The Sockets Networking API - نسخه متنی

Addison Wesley

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










15.3 socketpair Function


The socketpair function creates two sockets that are then connected together. This function applies only to Unix domain sockets.

#include <sys/socket.h>

int socketpair(int

family , int

type , int

protocol , int

sockfd[2] );

Returns: nonzero if OK, -1 on error

The

family must be AF_LOCAL and the

protocol must be 0. The

type , however, can be either SOCK_STREAM or SOCK_DGRAM. The two socket descriptors that are created are returned as

sockfd[0] and

sockfd[1] .

This function is similar to the Unix pipe function: Two descriptors are returned, and each descriptor is connected to the other. Indeed, Berkeley-derived implementations employ pipe by performing the same internal operations as socketpair (pp. 253254 of TCPv3).


The two created sockets are unnamed; that is, there is no implicit bind involved.

The result of socketpair with a

type of SOCK_STREAM is called a

stream pipe . It is similar to a regular Unix pipe (created by the pipe function), but a stream pipe is

full-duplex ; that is, both descriptors can be read and written. We show a picture of a stream pipe created by socketpair in Figure 15.7.

POSIX does not require full-duplex pipes. On SVR4, pipe returns two full-duplex descriptors, while Berkeley-derived kernels traditionally return two half-duplex descriptors (Figure 17.31 of TCPv3).



/ 450