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
函数原型: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
相关文章推荐
- 理解socket与tcp/ip编程相关函数
- Windows Socket 网络编程 TCP/IP体系结构、特点及相关术语
- Windows Socket 网络编程 —— TCP/IP体系结构、特点及相关术语
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- Linux网络编程:2. 初等网络函数介绍(TCP)
- 网络编程 --IP、TCP、UDP校验和算法
- java网络编程自学(三)-TCP/IP+NIO
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 网络编程--IP帮助函数
- 网络编程 --IP、TCP、UDP校验和算法
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 百度笔试题2005题目大致是这样的: 第一部分选择题: 有几道网络相关的题目,巨简单,比如第一题是TCP、RIP、IP、FTP中哪个协议是传输层的......。有一道linux的 chown使用题目。其他的全是数据结构的题目!什么链,表
- Linux下高性能网络编程中的几个TCP/IP选项
- 基于TCP/IP的网络编程步骤
- 基于TCP网络编程常用函数
- C#网络编程(一)——C#开发TCP/IP聊天室
- TCP/IP网络编程四书五经
- TCP/IP和网络通信(TCP协议编程)
- 网络编程相关函数说明