C++网络编程
Posted 一叶知秋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++网络编程相关的知识,希望对你有一定的参考价值。
最基本的常用函数:
(1)int socket(int domain, int type, int protocol);
创建一个套接字,返回值是套接字的id。domain参数告诉系统你想用什么协议族,一般使用的PF_INET指的是UDP,TCP等协议族。type指的是套接字接受数据的方式,共有5种最常用的是SOCK_STREAM, 告诉系统你请求一个值得信赖的流传输服务,这两个参数都定义在sys/socket.h中。 protocol一般是0,没什么意义。。
(2)
struct sockaddr{
unsigned char sa_len; //总长度
sa_family_t sa_family; //地址家族
char sa_data[14]; //地址值
};
#define DOCK_MAXADDRLEN 255 //最大可能的地址值
struct sockaddr_in{
uint8_t sin_len;
sa_family_t sin_family;
in_port_t sin_port;
struct in _addr sin_addr;
char sin_zero[8];
};
(3) int connect(int s, const struct sockaddr* name, socklen_t namelen);
连接成功返回0,否则返回-1,并将error code存在errno中。s参数是套接字id,也就是socket函数返回值。name指针指向sockaddr。namelen告诉系统sockaddr有多少字节。
服务器端使用的函数:
(4) int bind(int s, const struct sockaddr* addr, socklen_t addrlen);
(5) int listen(int s, int backlog);
backlog告诉套接字最大可挂起的套接字数目。
(6) int accept(int s, struct sockaddr* addr, socklen_t* addrlen);
accept返回一个新的套接字,你会使用这个新的套接字和client交流。
以上是关于C++网络编程的主要内容,如果未能解决你的问题,请参考以下文章