linux-socket tcp客户端服务器编程模型及代码详解

本文详细解析TCP客户端服务器编程模型,包括流程图、网络字节序与主机字节序的区别,以及地址结构。通过实例代码展示如何进行字节序转换,并实现服务器接收客户端连接并发送当前时间的功能。
摘要由CSDN通过智能技术生成

上一篇文章介绍了 TCP/IP相关协议,socket通信流程和涉及到的各种函数:

Socket简单理解


本篇将具体解释tcp客户端服务器编程模型相关的代码

文章分为4个部分:

1. TCP客户端服务器编程模型流程图

2. 网络字节序与主机字节序

3. TCP编程的地址结构

4. 详细案例代码及解释

一: TCP客户端服务器编程模型流程图


这里写图片描述

上面两张图片将整个流程已经说明的很清楚了;

二: 网络字节序与主机字节序

字节序即是保存数据的方向方式, 分为 大端存储小端存储;

其中 网络字节序 使用的是大端存储, 而我们用的主机字节序默认采用的小端存储

所以在我们进行网络编程的过程中还需要对相应的数据(地址 端口)进行字节序转换

下面是几个字节序的转换函数:

这里写图片描述
这里写图片描述

每个函数都它特定的意思 比如第一张图中的 第一个函数htonl 还有第二张图中的ntop

字符 含义
h host(主机)
to to
n network
l long
p pointer

这样就很好记忆了

三: TCP编程的地址结构

第一个是通用的地址结构

这里写图片描述

第二个则是封装过的

这里写图片描述

这两个数据类型可以相互转换

四: 详细案例代码及解释

下面给出一个案例的代码.完成如下功能:

服务器接收来自客户端的连接, 服务器在屏幕输出客户端的地址;

并向客户端发送当前的时间, 客户端再向屏幕输出时间.

服务端代码:

//tcp_server.c
#include <netdb.h>
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值