news 2026/6/19 9:39:03

手写 TCP 客户端:Connect 连接与 inet_pton 实战详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手写 TCP 客户端:Connect 连接与 inet_pton 实战详解

手写 TCP 客户端:Connect 连接与 inet_pton 实战详解

一、 客户端与服务器的异同

编写客户端代码时,最大的区别在于初始化阶段

  1. 不需要bind(通常):客户端不需要固定的端口号,操作系统会在调用connect时自动分配一个临时的可用端口。
  2. 不需要listen/accept:客户端是主动发起方,不是被动等待方。
  3. 核心动作socket->connect->send/recv

二、 关键函数解析

1. inet_pton:IP地址转换的新标准

在配置服务器地址时,我们人类习惯看"192.168.1.100"这种点分十进制字符串,但网络协议栈只认32位的大端整数

inet_pton(Presentation to Network) 是inet_addr的现代替代品,支持 IPv4 和 IPv6。

// 原型intinet_pton(intaf,constchar*src,void*dst);// 用法示例structsockaddr_inaddr;// 将字符串 "192.168.1.5" 转换为网络字节序整数,存入 addr.sin_addrinet_pton(AF_INET,"192.168.1.5",&addr.sin_addr.s_addr);

2. Connect:发起三次握手

// 原型intconnect(intsockfd,conststructsockaddr*addr,socklen_taddrlen);
  • addr: 这里的地址结构体必须填写服务器的 IP 和端口(切记不能写INADDR_ANY,那是服务器用的)。
  • 返回值: 成功返回 0,失败返回 -1(如服务器没开、网络不通)。

三、 代码实战:心跳客户端

下面的代码实现了一个“话痨”客户端:每隔 1 秒向服务器发送一条带计数的消息,并等待服务器的回复。

1. 完整代码 (tcp_client.c)

#include<stdio.h>#include<stdlib.h>#include<unistd.h><
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 17:28:25

评论区催更!Mem Reduct,轻量内存清理神器

前几天聊内存清理工具&#xff0c;评论区直接被Mem Reduct的呼声刷屏&#xff0c;赶紧跑去开源地址下载&#xff0c;趁热给大家安排上。 下载地址&#xff1a;https://pan.quark.cn/s/dda2a831ad29 备用地址&#xff1a;https://pan.baidu.com/s/1uYiLpP6uRv1rcWE1LibnDQ?pw…

作者头像 李华
网站建设 2026/6/14 23:00:03

DS4Windows终极指南:让PS4/PS5手柄在PC上完美适配的完整教程

DS4Windows终极指南&#xff1a;让PS4/PS5手柄在PC上完美适配的完整教程 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 还在为PC游戏不支持PS4/PS5手柄而烦恼吗&#xff1f;DS4Windows这…

作者头像 李华
网站建设 2026/6/16 8:13:15

HoRain云--JavaScript表单操作全攻略

&#x1f3ac; HoRain云小助手&#xff1a;个人主页 &#x1f525; 个人专栏: 《Linux 系列教程》《c语言教程》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;…

作者头像 李华
网站建设 2026/6/16 6:20:53

终极部署指南:零门槛玩转轻量AI视觉助手

终极部署指南&#xff1a;零门槛玩转轻量AI视觉助手 【免费下载链接】moondream 项目地址: https://gitcode.com/GitHub_Trending/mo/moondream 你是否曾梦想拥有一双能看懂世界的AI眼睛&#xff1f;现在&#xff0c;这个梦想可以实现了&#xff01;Moondream作为一款超…

作者头像 李华
网站建设 2026/6/16 15:47:48

HsMod游戏插件:让你的炉石传说体验翻倍的终极指南

HsMod游戏插件&#xff1a;让你的炉石传说体验翻倍的终极指南 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 还在为炉石传说中冗长的动画和繁琐的操作而烦恼吗&#xff1f;HsMod游戏插件正是你需…

作者头像 李华