Linux 网络编程 TCP/UDP编程

本文介绍了Linux网络编程中的TCP和UDP协议,包括IP地址、端口、地址相关数据结构的概念,以及TCP和UDP的概述、编程流程和相关函数接口。重点讲解了TCP的可靠连接服务和UDP的无连接、高效传输特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在TCP/IP协议族中,有很多种协议。TCP/IP协议群中的核心协议被设计运行在网络层和传输层,它们为网络中的各主机提供通信服务,也为模型的最高层–应用层中的协议提供服务。其中的TCP和UDP协议就是应用在传输层的协议。

IP地址

1. IP地址的作用
  IP地址用来标识网络中的一台主机。
本篇文章主要讨论基于IPV4协议的网络通信。
2. IP地址的格式转换
  IP地址有两种格式:十进制点分形式和32为二进制形式。前者=是大众所熟悉的形式,后者是网络传输中IP地址的存储方式。
十进制点分形式 “192.168.1.1”
32位二进制形式 10111110 10101000 00000001 00000001
IPv4地址转换函数: inet_aton(); inet_addr(); inet_ntoa();

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
char *inet_ntoa(struct in_addr address);//返回点分十进制形式

in_addr_t inet_addr(const char *cp);//返回二进制地址形式
参数:
	cp	点分十进制IP地址字符串
返回值:
	成功返回 转换后的二进制地址形式

端口

  • 端口号是一个无符号短整型,取值范围0-65535;
  • 端口号是一种系统资源,一般0-1023被系统程序所使用
  • TCP端口号和UDP端口号独立,互不影响
      端口号可以用来代表主机内部的某个套接字。换句话说,当一个套接字建立好,需要和某个IP和端口号进行绑定,这样双方才能实现端到端的通信。
  • 字节序是指计算机中多字节整形数据的存储方式。
  • 字节序有两种:大端序和小端序。
    字节序转换函数: htons(); ntohs(); htonl(); ntohl();
h:	主机host
to: 转换
s:	short类型
l:	long类型
n:	network网络

#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);
参数:
	hostshort	主机字节序的 16bit数据
	hostlong	主机字节序的 32bit数据
	netshort	网络字节序的 16bit数据
	netlong		网络字节序的 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值