手写 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><

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1182378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Socket 网络编程实战:启动顺序、环境配置与通信验证

Socket 网络编程实战:启动顺序、环境配置与通信验证 一、 程序的编译与命名规范 为了方便管理和区分角色,在网络编程中我们通常遵循以下命名规范: 服务器端源码:server.c -> 编译输出 -> server (或 s) 客户端源码:client.c -> 编译输出 -> client (或 c) 编…

DownKyi:B站视频下载的完整解决方案与专业技巧

DownKyi&#xff1a;B站视频下载的完整解决方案与专业技巧 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;。…

Thorium浏览器:告别卡顿,开启丝滑浏览新时代

Thorium浏览器&#xff1a;告别卡顿&#xff0c;开启丝滑浏览新时代 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Windows and MacOS/Raspi/Android/Special builds are in different repositories, links are towards the top of the REA…

体育共享模式大火,自助网站馆如何解决美团核销美团保证金10万、等保认证费用20万?

“开自助网球场馆&#xff0c;最难的不是场地和客流&#xff0c;而是平台入驻的各种合规门槛。”这是很多体育场馆创业者的共同心声。高企的合规成本&#xff0c;压垮了多少创业者&#xff1f;近日&#xff0c;美团平台针对体育场馆类目提高了入驻标准&#xff1a;商家需缴纳高…

11kw OBC LLC谐振变换器仿真模型

11kw OBC LLC谐振变换器仿真模型 可以仿出管子损耗&#xff0c;管子结温 一、引言 随着电力电子技术的不断发展&#xff0c;谐振变换器因其高效率、低噪声等优点&#xff0c;在各种电源设备中得到了广泛应用。特别是在新能源汽车的On-Board Charger&#xff08;OBC&#xff0…

移动端解决输入框唤起键盘时将底部按钮顶起问题

来源:https://blog.csdn.net/weixin_42017221/article/details/134171629 问题描述:移动端输入框输入内容时会唤起键盘,而这个时候键盘会把固定页面底部的按钮给顶起来遮掩住输入框,给用户造成不好的体验 解决思路:…

如何在Windows上快速运行iOS应用:ipasim模拟器终极指南

如何在Windows上快速运行iOS应用&#xff1a;ipasim模拟器终极指南 【免费下载链接】ipasim iOS emulator for Windows 项目地址: https://gitcode.com/gh_mirrors/ip/ipasim 你是否曾经梦想在Windows电脑上运行iOS应用&#xff1f;现在&#xff0c;这个梦想已经成为现实…

美团10万保证金下,自助网球馆如何“零成本”上线?揭秘服务商赋能新模式

凌晨时分&#xff0c;成都高新区最后一个网球场逐渐安静下来。创业者李浩却没有离开&#xff0c;他站在场边望着刚刚结束营业的场地&#xff0c;心中思考着一个比灯光更明亮的问题&#xff1a;在数字化浪潮中&#xff0c;中小型体育场馆该如何找到自己的位置&#xff1f;这是一…

【读书笔记】《演而优则仕》

《演而优则仕》&#xff1a;魏晋名士的表演艺术 我是本书作者。今天向大家介绍《演而优则仕》&#xff0c;这本书是我多年来对魏晋名士现象的思考结晶。核心观点可以用两个字概括&#xff1a;表演。 魏晋名士那些看似荒诞不经的言行&#xff0c;并非单纯的反抗礼教&#xff0c;…

自动化变频控制柜哪个牌子好?自动化变频控制柜/水泵专用控制柜/正压通风防爆控制柜自动化变频控制柜品牌排行 - 品牌推荐师

在工业自动化与节能环保浪潮的推动下,自动化变频控制柜已成为市政、环保、电力、化工等众多领域的核心装备。其性能的稳定性、能效水平及智能化程度,直接关系到生产系统的运行效率与成本控制。面对市场上琳琅满目的品…

Matlab含新能源配电网的风险评估研究:应用蒙特卡洛时序方法评估风光和电动汽车多类型的影响

Matlab含新能源&#xff08;风电光伏&#xff09;和多类型电动汽车配电网风险评估 软件&#xff1a;matpowerMatlab&#xff1a; 关键词&#xff1a;蒙特卡洛、时序、电网风险、风险评估、风光不确定性 介绍&#xff1a;由于电动汽车负荷与风电光伏出力的不确定性&#xff0c;造…

利用上下文提升答案选择精度的新技术

建立答案选择精度的新标准 一个同时利用局部和全局上下文的模型&#xff0c;在两个基准数据集上将精度分别比当前最优水平提高了6%和11%。 会议&#xff1a;ECIR 2021&#xff0c; EACL 2021 相关出版物&#xff1a; 在Transformer模型中使用局部和全局上下文进行答案句子选择在…

Zimbra邮件服务曝高危漏洞CVE-2024-45519:未经认证的远程代码执行

CVE-2024–45519 in Zimbra — Bounty $ 1000 描述: Zimbra的postjournal服务中存在一个基于SMTP的漏洞&#xff0c;允许未经身份验证的攻击者以zimbra用户身份注入命令。 CVE-2024–45519 是一个影响Zimbra&#xff08;特别是PostJournal服务&#xff09;的漏洞。此缺陷允许未…

PingFangSC苹方字体完整使用指南:打造专业级网页视觉体验

PingFangSC苹方字体完整使用指南&#xff1a;打造专业级网页视觉体验 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 还在为网页字体显示效果不佳而烦恼吗…

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

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

FreeMove:Windows存储空间管理的革命性解决方案

FreeMove&#xff1a;Windows存储空间管理的革命性解决方案 【免费下载链接】FreeMove Move directories without breaking shortcuts or installations 项目地址: https://gitcode.com/gh_mirrors/fr/FreeMove 存储危机的真实困境 你的Windows系统盘是否经常亮起红色警…

PHP的符号表的庖丁解牛

PHP 的符号表&#xff08;Symbol Table&#xff09; 是 Zend 引擎中用于 管理变量名与其值&#xff08;zval&#xff09;映射关系的核心数据结构&#xff0c;它是 PHP 实现动态类型、作用域、超全局变量等特性的底层基石。理解符号表&#xff0c;是深入掌握 PHP 内存模型、作用…

7个高效Python机器学习算法:材料性能预测与智能设计实战指南

7个高效Python机器学习算法&#xff1a;材料性能预测与智能设计实战指南 【免费下载链接】Python All Algorithms implemented in Python 项目地址: https://gitcode.com/GitHub_Trending/pyt/Python Python机器学习技术正在彻底改变材料科学的研究方式&#xff0c;从传…

代碼寫得好不如PPT做得好:技術人的溝通詛咒

代碼寫得好不如PPT做得好&#xff1a;技術人的溝通詛咒引言&#xff1a;當沉默的代碼遇上喧囂的簡報在科技公司的會議室裡&#xff0c;經常上演著這樣一幕&#xff1a;一位資深工程師花了數週時間&#xff0c;精心設計了一個優雅高效的系統架構&#xff0c;代碼簡潔而強大&…

Xilinx DDR4/DDR3 多通道读写防冲突设计,可实现最高8个通道同时读写DDR且不冲突问题

Xilinx DDR4/DDR3 多通道读写防冲突设计&#xff0c;可实现最高8个通道同时读写DDR且不冲突问题&#xff0c;通道数可根据使用来决定。 每个通道读写接口简单&#xff0c;操作独立&#xff0c;可同时实现最高8个通道的读写请求。 此工程经过2个月的实际上板疲劳测试&#xff0c…