网络中的进程是通过套接字socket来通信的

网络中的进程是通过套接字socket来通信的

下面介绍socket相关的函数:

一、服务器端

(1)    socket函数原型:

int socket(int domain, int type, int protocol);

地址族、地址域:domain

常用的协议族有,AF_INET(ipv4)、AF_INET6(ipv6)、

常用的socket类型:type
1.SOCK_STREAM
这个协议是按照顺序的、可靠的、数据完整的基于字节流的连接。这是一个使用最多的socket类型,这个socket是使用TCP来进行传输。
2.SOCK_DGRAM
这个协议是无连接的、固定长度的传输调用。该协议是不可靠的,使用UDP来进行它的连接。
3.SOCK_RAW
这个socket类型提供单一的网络访问,这个socket类型使用ICMP公共协议。

公共协议:protocol

常用的公共协议有,IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议。默认为0,即选择IPPROTO_TCP。

返回值:

socket返回的值是一个int文件描述,0,1,2分别表示标准输入、标准输出、标准错误。所以其他打开的文件描述符都会大于2, 错误时就返回 -1。

例如:           ret = socket(AF_INET,SOCK_STREAM, IPPROTO_TCP;

                     Printf(“ret=%d\n”, ret);

 

(2)    bind函数原型:

int bind(intsockfd, const struct sockaddr *addr, socklen_t addrlen)

当一个套接字用socket()创建后,存在一个名字空间(地址族),但它没有被命名。bind()将套接字地址(本地主机地址和本地端口地址)与所创建的套接字号联系起来,即将名字赋予套接字,以指定本地半相关。如果没有错误发生,bind()返回0。否则返回SOCKET_ERROR。

sockfd

是socket描述字,它是通过socket()函数创建了,唯一标识一个socket,故这里写socket()函数的返回值。bind()函数就是将给这个描述字绑定一个名字。

addr

一个const struct sockaddr*指针,指向要绑定给sockfd(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值