当前位置: 首页 > news >正文

TCP套接字【网络】

文章目录

创建套接字:(TCP/UDP)

int socket(int domain, int type, int protocol);

inet_aton,将字符串IP转换成整数IP

int inet_aton(const char *cp, struct in_addr *inp);

监听套接字:(TCP,服务器)

int listen(int sockfd, int backlog);

TCP服务器在与客户端进行网络通信之前,服务器需要先获取到客户端的连接请求,获取连接的函数叫做accept

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

参数说明:

  • sockfd:特定的监听套接字,表示从该监听套接字中获取连接。
  • addr:对端网络相关的属性信息,包括协议家族、IP地址、端口号等。
  • addrlen:调用时传入期望读取的addr结构体的长度,返回时代表实际读取到的addr结构体的长度,这是一个输入输出型参数

return val :

  • 获取连接成功返回接收到的套接字的文件描述符,获取连接失败返回-1,同时错误码会被设置。

如何理解accept函数返回的套接字?
*

telnet 是一个基于网络的命令行工具,用于远程登录到另一台计算机

inet_ntop,将整数IP转换成字符串IP

  const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
  • af:地址族,指定要转换的地址类型。常见的值有 AF_INET(IPv4)和 AF_INET6(IPv6)。

  • src:指向包含原始网络地址的缓冲区的指针。

  • dst:指向目标缓冲区的指针,该缓冲区将接收转换后的文本表示。如果 dst 为 NULL,则 inet_ntop 将分配一个足够大的缓冲区,并返回指向该缓冲区的指针。

  • size:目标缓冲区的大小

建立连接:(TCP,客户端)

int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

inet_pton,将一个点分十进制的IP地址字符串转换为网络字节顺序的数值形式

 int inet_pton(int af, const char *src, void *dst);

af:指定地址族,可以是 AF_INET(IPv4)或 AF_INET6(IPv6)。
src:指向一个以 null 结尾的字符串,包含要转换的IP地址。
dst:指向一个用于存储转换后的数值地址的缓冲区。

多进程版本关于sockfd
在这里插入图片描述

代码

单进程版本
多进程版本
线程版本


http://www.mrgr.cn/news/27149.html

相关文章:

  • 2-94 基于matlab的最佳维纳滤波器的盲解卷积算法
  • 《论网络安全体系设计》写作框架,软考高级系统架构设计师
  • xmake vscode+clangd实现c/c++程序更精确跳转、补全
  • 小琳AI课堂:o1系列模型
  • Python 中的高并发 I/O
  • 什么是幂等
  • Coggle数据科学 | 科大讯飞AI大赛:人岗匹配挑战赛 赛季3
  • Java多线程编程-基础篇
  • 利士策分享,细品礼仪之美:在日常中优雅相处的艺术
  • 【FATFS】FATFS简介及下载
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • ET 框架问题集合(请收藏,不定时更新)
  • 【例题】lanqiao1331 二进制中 1 的个数
  • MySQL聚合统计
  • Nginx:Web架构中的全能战士
  • 一分钟教你 全平台隔空投送文件 LoaclSend保姆级教程
  • Git换行符自动转换参数core.autocrlf的用法
  • 【零成本】七日杀 服务器搭建 异地联机 无需公网IP、服务器
  • 看Threejs好玩示例,学习创新与技术(二)
  • Java的发展史与前景