【网络编程】TCPIP_1_快速入门


前言

说明:

  • demo 基于 Linux。

1. 快速入门

以下步骤简略了很多细节,但是通过下面的几个函数就能构建出简单的TCP/IP网络编程demo了。

原文:李柱明博客

1.1 服务端编程简要步骤

网络编程中和接受连接请求的套接字创建过程可整理如下:

  1. 第一步:调用 socket 函数创建套接字。
  2. 第二步:调用 bind 函数分配IP地址和端口号。
  3. 第三步:调用 listen 函数转换为可接受请求状态。
  4. 第四步:调用 accept 函数受理套接字请求。
  5. 第五步:调用 read、write 读写函数进行数据交互。
  6. 第六步:调用 close 函数关闭套接字。

1.2 客户端编程简要步骤

客户端请求连接简要步骤:

  1. 第一步:调用 socket 函数创建套接字。
  2. 第二步:调用 connect 函数向服务端发送连接请求。
  3. 第三步:调用 read、write 读写函数进行数据交互。
  4. 第四步:调用 close 函数关闭套接字。

1.3 参考

如 TCP 客户端和服务端:

部分参考函数及其头文件(基于linux):

// 第一步:调用 socket 函数创建套接字。
//成功时返回文件描述符,失败时返回-1
#include <sys/socket.h>
int socket(int domain, int type, int protocol);

// 第二步:调用 bind 函数分配IP地址和端口号。
//成功时返回0,失败时返回-1
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);

/* 补充 client 部分 */
//成功时返回0,失败时返回-1
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

// 第三步:调用 listen 函数转换为可接受请求状态。
//成功时返回0,失败时返回-1
#include <sys/socket.h>
int listen(int sockfd, int backlog);

// 第四步:调用 accept 函数受理套接字请求。
//成功时返回文件描述符,失败时返回-1
#include <sys/socket.h>
int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);

// 第五步:调用读写函数进行数据交互。
/*	成功时返回接收的字节数(但遇到文件结尾则返回 0),失败时返回 -1
	fd : 显示数据接收对象的文件描述符
	buf : 要保存接收的数据的缓冲地址值。
	nbytes : 要接收数据的最大字节数
*/
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t nbytes);

/*	成功时返回写入的字节数 ,失败时返回 -1
	fd : 显示数据传输对象的文件描述符
	buf : 保存要传输数据的缓冲值地址
	nbytes : 要传输数据的字节数
*/
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t nbytes);

// 第六步:调用 close 函数关闭套接字。
/* 	成功时返回 0 ,失败时返回 -1
	fd : 需要关闭的文件或套接字的文件描述符
*/
#include <unistd.h>
int close(int fd);

参考:

posted @ 2021-08-16 19:12  李柱明  阅读(274)  评论(0编辑  收藏  举报