linux网络编程概念(一)

AF表示地址族(address family)
PF表示协议族(protocol family)
domain参数
AF_UNIX 内核中通信 sockaddr_un
AF_INET 通过ipv4 sockaddr_in
AF_INET6 通过ipv6 sockaddr_in6
socket分为两种类型,一种是流(TCP),一种是数据报(UDP)
其中流是面向链接的可靠的但是不支持保留消息边界,数据报不是面向链接也不可看的但是可以保留消息边界。

#include<sys/socket.h>
//创建一个socket
//type参数指定socket类型(SOCK_STREAM或者SOCK_DGRAM),protocol参数指定为0即可,也可指定为非零值
int socket(int domain,int type,int protocol);   //成功返回文件描述符,失败返回-1

//将socket绑定到地址
//sockfd就是socket的返回值,addr参数是一个指针,指向一个指定该socket绑定到的地址的结构,addrlen参数指定了地址结构的大小
int bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen);//成功返回0,失败-1

//struct sockaddr结构的定义
    sa_family_t sa_family;
    char saz_data[14];
//监听接入链接(被动)
//backlog参数允许相知未决连接(客户端在服务器调用accept()之前调用connect())的数量,在这个限制之内的连接请求会立即成功
int listen(int sockfd,int backlog); //成功返回0,失败-1

//接受连接
//该函数创建一个新socket,该新socket会与执行sonnect()的对等socket进行连接
int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);`   //成功返回文件描述符,失败返回-1

//连接到对等socket
int connect(int sockfd,const struct sockaddr *addr,socklen_t addrlen);//成功返回0,失败-1

//连接终止
close();
ssize_t recvfrom(int sockfd,void *buffer,size_t length,int flags,struct sockaddr *src_addr,socklen_t *addrlen); //成功返回收到的字节数,失败-1
ssize_t sendto(int sockfd,const void *buffer,size_t length,int flags,const struct sockaddr *dest_addr,socklen_t addrlen);   //成功返回发送的字节数,失败-1

转载于:https://www.cnblogs.com/biaopei/p/7730594.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值