网络编程——socket套接字的使用(一)

1、socket函数

函数的作用:建立一个新的socket套接字

函数的原型:int socket(int domain,int type,int protocol)

参数:domain:表示使用何种的地址类型;AF_INET:IPV4;AF_INET6:IPV6

type:SOCK_STREAM:TCP,面向数据流的;SOCK_DGRAM:UDP,使用不连续不可信赖的数据包连接

protocol:传输协议编号,设为0即可

头文件:#include<sys/socket.h>

返回值:成功:返回socket套接字描述符;出错:-1;


2、bind函数

函数的作用:绑定IP地址

函数的原型:int bind(int sockfd,struct sockaddr *my_addr,int addrlen)

参数:sockfd:socket套接字描述符

my_addr:主机地址

addrlen:sockaddr的地址长度

其中struct sockaddr_in

{

    unsigned short int sin_family;

    uint16_t sin_port;//端口号

    struct in_addr sin_addr;//IP地址

    unsigned char sin_zero[8];//未使用

};

struct in_addr

{

    uint32_t s_addr;

};

头文件:#include<sys/types.h>

            #include<sys/socket.h>

返回值:成功:0;出错:-1


3、connect函数

函数的作用:建立socket连接,通常客户端连接服务器使用

函数的原型:int connect(int sockfd,struct sockaddr *serv_addr,int addrlen)

参数:serv_addr:表示要连接的服务器的IP地址

addrlen:struct sockaddr的长度

返回值:成功:0;出错:-1


4、listen函数

函数的作用:聆听网络,等待连接

函数的原型:int listen(int sockfd,int backlog)

参数:sockfd:描述符

backlog:允许接入的客户端的数目

返回值:成功:0;出错:-1;


注意:listen并没有连线,只是设置socket的listen模式而已,真正连接的是accept

5、accept函数

函数的作用:接收网络连接,客户端连接,三次握手在这个地方

函数的原型:int accept(int sockfd,struct sockaddr *addr,int *addrlen)

参数:addr:连接成功,填充远端客户机的地址

addrlen:struct sockaddr的长度

6、send函数

函数的作用:经过socket传送数据;向对方发送数据

函数的原型:int send(int sock_fd,void *msg,int len,int *addrlen)

参数:addr:连接成功,填充远端客户机的地址

返回值:成功:返回新的sock_fd;出错:-1


7、recv函数

函数的作用:经过socket接收数据

函数的原型:int recv(int sock_fd,void *buf,int len,unsigned int flags)

函数的参数:sock_fd:accept以后的socket套接字描述符

buf:存放地址

len:接收数据的最大长度

返回值:成功:接收的字节数;出错:-1



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值