Socket网络编程之TCP编程——代码

这篇博客探讨了TCP网络编程,涉及主机字节序列、网络字节序列的概念,介绍了套接字地址结构,包括通用和专用结构,并列出了Linux下的字节序转换函数。此外,还详细阐述了TCP编程流程,包括服务端和客户端的代码实现,强调了TCP的面向连接、可靠性和流式特性。最后提到,完整的三次握手和四次挥手以及多进程并发处理将在后续内容中讲解。
摘要由CSDN通过智能技术生成

目录

主机字节序列

网络字节序列

套接字地址

通用socket地址结构

专用socket地址结构

IP地址转换函数

网络编程接口

TCP编程流程

服务端代码

客户端代码


关于网络编程这一块会涉及一些关于计算机网络的知识,包括网络分层、网络协议、端口号、IP地址等,不了解的地方可以自己查阅了解一下。这里简单的提一下主机字节序列和网络字节序列。

主机字节序列

主机字节序列分为大端字节序和小端字节序,不同的主机采用的字节序列可能不同。大端字节序是高位字节存储在内存低地址,低位字节存储在高地址;而小端则是高位字节存储在高地址,低位字节存储在低地址处。

这就会产生一个问题:在使用两台主机传递数据时,如果两台主机的主机字节序不同,那么就可能产生冲突。所以就引出了网络字节序列。

网络字节序列

在将数据发送到网络时规定整形数据使用大端字节序,所以把大端字节序称为网络字节序列

Linux 系统提供如下 4 个函数来完成主机字节序和网络字节序之间的转换:

套接字地址

套接字:通过网络进行数据收发

套接字地址一般是一组数组

通用socket地址结构

#include<bits/socket.h>

struct sockaddr
{
    sa_family_ sa_family;
    char sa_data[14];
};

地址族类型通常与协议族类型对应,常见的协议族和对应的地址族如下:

专用socket地址结构

TCP/IP协议族有sockaddr_in和sockaddr_in6两个专用sock

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值