嵌入式Linux开发:网络编程

学习视频 <— 众所周知B站是中国最大的学习网站 2333

第一部分:网络的基本概念

(详细内容参考计算机网络类教材即可,内容较多,这里不做赘述了)

第二部分:TCP/IP协议概述

(详细内容参考计算机网络类教材即可,内容较多,这里仅整理部分)

  • TCP协议
    TCP(传输控制协议Transmission Control Protocol)是重要的传输层协议,TCP提供一 种面向连接的、可靠的字节流服务。
    TCP协议的目的是允许数据同网络上的另外站点进行可靠的交换。它能提供端口编号的译码,以识别主机的应用程序,完成数据的可靠传输。
    TCP协议具有严格的内装差错检验算法确保数据的完整性。
    TCP协议是面向字节的顺序协议,这意味着包内的每个字节被分配一一个顺序编号,并分配给每包一个顺序编号。
  • Socket套接字
    Socket(套接字)是一种通讯机制,它包含一整套的调用接口和数据结构的定义,它给应用进程提供了使用如TCP/UDP等网络协议进行网络通讯的手段。
    Linux中的网络编程通过Socket接口实现,Socket既是一种特殊的IO,提供对应的文件描述符。一个完整的Socket都有一个相关描述 协议,本地地址,本地端口,远程地址,远程端口;每一个Socket有一个本地的唯一Socket,由操作系统分配。
    在Linux网络编程中Socket本质上就是一个结构体
#include <sys/socket.h>
int socket(int domain, int type, int protocol)

返回成功返回描述符,出错返回-1 

参数
●domain
	AF_INET		IPv4因特网域
	AF_INET6	IPv6因特网域
	AF_UNIX	unix域
	AF_UNSPEC 	未指定
●type
	SOCK_STREAM
	流式的套接字可以提供可靠的、面向连接的通讯流。它使用了TCP协议。
	TCP保证了数据传输的正确性和顺序性。
	SOCK DGRAM
	数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传
	输,是无序的,并且不保证可靠,无差错。使用数据报协议UDP协议。
	SOCK_ RAW
	原始套接字允许对低层协议如IP或ICMP直接访问,主要用于新的网络协议
	实现的测试等。
	SOCK_ SEQPACKET
	长度固定、有序、可靠的面向链接报文传递
●protocol
	通常为0,表示按给定的域和套接字类型选择默认协议。

Socket创建在内核中,若创建成功返回内核文件描述表中的socket描述符。

在这里插入图片描述

  • 因特网地址结构
struct in_addr{
	in_ addr_ _ts_ addr		/*ipv4地址*/
};
struct sockaddr_ in {
	short int sin_family;	/* Internet地址族如AF_INET(主机字节序)*/
	unsigned short int sin_port; 	/* 端口号,16位值(网络字节序)*/
	struct in_addr sin_addr;		/* Internet地址,32位IPv4地址(网络字节序)*/
	unsigned char sin_zero[8]; 		/* 添0(为了格式对齐的填充位)*/
};

第三部分:TCP协议网络基础编程

在这里插入图片描述

第四部分:UDP协议网络基础编程

第五部分:网络高级编程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值