您的位置:首页 > 理论基础 > 计算机网络

TCP/IP相关的网络编程函数

2016-11-06 23:08 465 查看
1.socket

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

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

函数参数:domain:建立何种地址类型;AF_INET,IPV4的 网络协议

 AF_INET6,IPV6的网络协议

  type:SOCK_STREAM;  TCP,面向数据流的

    SOCK_DGRAM;   UDP,使用不连续不可信赖的数据报

    SOCK_RAW;   提供原始网络协议

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

返回值:成功返回socket套接字描述符,失败返回-1

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

2.bind

函数作用:绑定IP地址

函数原型:int bind(int socket,struct sockaddr *my_addr,int addlen)

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

  my_addr:主机地址

  addlen:sockaddr地址长度

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

      #include <socket.h>

关于struct   sockaddr  my_addr结构体:

struct sockaddr
{
unsigned short int sa_family;
char sa_data[4];
};

struct sockaddr_in
{
unsigned short sin_family;
unint16_t sin_port; //端口号
struct in_addr sin_addr; //IP地址
unsigned char siz_zero[8]; //未使用
};

struct in_addr
{
unint32_t s_addr;
}


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

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

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

  addlen:struct socket 的长度

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

4.listen

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

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

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

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

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

5.accept

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

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

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

  addlen:struct sockaddr的长度

返回值:成功返回新的sock_fd,失败-1

6.send

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

函数原型:int send(int sock_fd,const void *msg,int len,unsigned int flags)

函数参数:sock_fd:accept建立起来的socket连接描述符,连接远方的IP地址

  msg:发送的数据

  len:数据长度

  flags:设为0

返回值:成功返回实际传送出去的字节数,出错-1

7.recv

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

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

函数参数:sock_fd:accept建立起来的socket连接描述符,连接远方的IP地址

  buf:存放地在

  len:接收数据最大长度

  flags:设为0

返回值:成功返回实际接收出去的字节数,出错-1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: