欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 网络编程(一)

网络编程(一)

2025/3/21 5:31:38 来源:https://blog.csdn.net/2501_90090576/article/details/146350318  浏览:    关键词:网络编程(一)

思维导图

 一.服务器的搭建

1.创建服务器套接字

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

功能描述:创建一个套接字文件,参数不同,功能类型就会不同

参数描述: 参数 domain:网络介质, 最常用的就是: AF_INET

参数 type:套接字类型,tcp协议用的就是这种套接字 SOCK_DGRAM:

udp协议使用的是这种套接字

如果套接字类型为 SOCK_STREAM,protocol 为0,则自动选用tcp协议

如果套接字类型为 SOCK_DGRA2M,protocol 为0,则自动选用udp协议 

2.提前准备地址信息结构体

struct sockaddr_in{

unsigned short sin_family; // 这是一个标记位,固定写 AF_INET

unsigned short sin_port; // 端口号

struct in_addr sin_addr;// 一个结构体,结构如下

struct in_addr{

unsigned int s_addr; // 用来存放ip地址的变量

}

unsigned char zero[8]; // 没有实际意义,完全为了字节对齐填充大小 }

}

3. 为服务器套接字绑定信息

函数原型:int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);

功能描述:将写有ip和port地址信息结构体,写入套接中

参数描述: 参数 sockfd:准备写入ip和port的套接字

参数 addr:写有ip和port的结构体地址,该结构体如下

struct sockaddr {

unsigned short sa_family; // 固定写 AF_INET

char sa_data[14]; // 这个14个字节的内存里面,就是用来存放 ip 和 port的

}

4.创建监听列表

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

功能描述:创建监听列表并监听客户端连接,如果有客户端连接,则将该客户端加入监听列表中

参数描述: 参数 sockfd:哪个描述符需要监听并创建监听列表,一般就是服务器的描述符 参数 backlog:监听列表的大小

 5.在监听列表中接受客户端的连接

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

功能描述:创建监听列表并监听客户端连接,如果有客户端连接,则将该客户端加入监听列表中

参数描述: 参数 sockfd:哪个描述符需要监听并创建监听列表,一般就是服务器的描述符 参数 backlog:监听列表的大小

 

二.客户端的创建 

 1.创建套接字

2.提前准备地址信息结构体

3.连接服务器

函数原型:int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);

功能描述:根据提供的ip和port连接到指定服务器

参数描述: 参数 sockfd:客户端套接字

参数 addr:存有ip和port的一个通用地址信息结构体

参数 addrlen:第2个参数的实际长度

 

运行时需要先启动服务器,在运行客户端,如用gcc sever.c -o sever 编译服务器,gcc client.c -o client 编译客户端,代码并未显出头文件,需要自行用man手册查询 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词