TCP/IP 第2章 套接字类型与协议设置

TCPIP协议族习题答案 TCPIP协议族习题答案,对我们学习有很大的帮助,所以要下载哦 立即下载

创建套接字:

int socket(int domain, int type, int protocol);

成功时返回文件描述符,失败时返回-1。

domain:套接字中使用的协议族(protocol family)信息。

type:套接字数据传输类型信息。

protocol:计算机间通信中使用的协议信息。

 

Protocol Family: 

头文件sys/socket.h中声明的协议族
名称协议族
PF_INETIPv4

PF_INET6

IPv6
PF_LOCAL本地通信的UNIX协议族
PF_PACKET底层套接字的协议族
PF_IPXIPX Novell协议族

主要用PF_INET协议族。

 

Type:

套接字类型指的是套接字的数据传输方式,通过第二个参数传递。协议族中存在着多种数据传输方式。

SOCK_STREAM:面向连接的套接字

  • 传输过程中数据不会消失
  • 按序传输数据
  • 传输的数据不存在数据边界

收发数据的套接字内部有buffer(缓冲区)。所以可以n对m的进行read()和write()。

当buffer满了之后,传输端套接字将停止传输。

“可靠的、按序传递的、基于字节的面向连接的数据传输方式的套接字”

 

SOCK_DGRAM:面向消息的套接字

  • 强调快速传输而非传输顺序
  • 传输的数据可能丢失也可能损毁
  • 传输的数据有数据边界
  • 限制每次传输的数据大小

“不可靠的、不按序传递的、以数据的高速传输为目的的套接字”

 

第三个参数:

在大部分情况侠,传递前两个参数即可创建所需的套接字。所以可以向第三个参数传递0。

但是会遇到,同一协议族中存在多个数据传输方式相同的协议。

 

在基于IPv4网络协议族中:

SOCK_STREAM只有IPPROTO_TCP。 

SOCK_DGRAM只有IPPROTO_UDP。

 

多次read实例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>

void error_handling(char *message);


int main(int argc, const char * argv[])
{
	int sock;
	struct sockaddr_in serv_addr;
	char message[30];
	int str_len;
	if(argc!=3){
		printf("Usage : %s <IP> <port>\n",argv[0]);
		exit(1);
	}

	sock = socket(PF_INET, SOCK_STREAM, 0);
	if(sock == -1)
		error_handling("socket() error");

	memset(&serv_addr, 0, sizeof(serv_addr));
	serv_addr.sin_family=AF_INET;
	serv_addr.sin_addr.s_addr=inet_addr(argv[1]);
	serv_addr.sin_port=htons(atoi(argv[2]));

	if(connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr))==-1)
		error_handling("connect() error!");
	int idx=0,read_len=0;
	while(read_len=read(sock, &message[idx++],1)){
		if(read_len==-1)
			error_handling("read() error!");
		str_len+=read_len;
	}
	if(str_len==-1)
		error_handling("read() erroe!");
	printf("Message from server : %s\n",message);
	printf("use read() %d times",idx);
	close(sock);

	return 0;
}


void error_handling(char* s)
{
	fputs(s, stderr);
	fputc('\n', stderr);
	exit(1);
}


 

TCP/IP协议 课后习题答案 TCP/IP协议 课后习题答案 第4章 IP地址:分类编址 第5章 IP地址:无分类编址 第6章 IP分组的交付、转发和路由选择 第 19章 文件传输协议:FTP和 TFTP 立即下载

相关推荐

射频电路设计——射频器件基础

本文仅供自己复习使用,请勿转载! 射频电路制作方法 MCM工艺 CMOS工艺 趋肤效应、深度 频率越高趋肤效应越明显 高频器件 高频电阻 绕线的比贴片的多一个电感,是因为绕线的因为是线绕制的,只有有线就会有电感,所以绕线电阻等效模型会比贴片的多一个电感 多晶硅电阻模型 深线性区MOS电阻 高频电阻的频率响应 记忆的话就后面的频率特性有点像电容的 高频电容 作用 单层贴片式电容 多层贴片式电容 MIM电容 MOM电容 由于是并联的,所以总的电容值是单个的直接相加 PN结电容 M.

输出每日所学,供大家学习使用 7141

《TCP/IP网络编程》课后练习答案1-14章

第一章 理解网络编程和套接字 套接字在网络编程中的作用是什么?为什么称它为套接字? P2,网络编程就是编写程序让两台联网的计算机相互交换数据。在我们不需要考虑物理连接的情况下,我们只需要考虑如何编写传输软件。操作系统提供了名为“套接字”,套接字是网络传输传输用的软件设备 socket英文原意是插座:我们把插头插到插座上就能从电网获得电力供给,同样,为了与远程计算机进行数据传输,需要连接到I...

baichaqinghuan的博客 9391

低成本主从机械臂系统构建:6D位姿数据采集与VLA模型训练实战

本文详细介绍了如何构建低成本主从机械臂系统,实现高精度6D位姿数据采集与VLA模型训练。通过300美元级别的硬件组合,系统达到±1mm位置精度和≤0.5°姿态误差,满足Vision-Language-Action模型的多模态训练需求。文章涵盖硬件选型、数据采集技巧、模型训练实战经验,为机器人研究提供经济高效的解决方案。

r7s8t的博客 263

网络协议分析(第二版)期末复习资料一

这里写自定义目录标题一、填空二、问答 一、填空 1、TCP选项-时间戳tsrecent的取值 “时间戳”选项用于估算RTT,长度为10字节, 除1字节的类型标识(取值为8)、1字节的“长度” 字段(值为10)夕卜,还包括一个4字节的“时间戳 值”和一个4字节的“时间戳回显应答”。 2、TCP/IP分层模型中的两个边界 操作系统边界和协议地址边界 3、点到点通信和端到端通信; 端到端是在应用层和传输层 点到点在IP层和网络接口层 点到点是对等实体间的通信由一段一段直接相连的机器间的通信组成 端到端是指对等实体

weixin_44208925的博客 4813

TI CC2642R蓝牙5.2模块实战:从零搭建智能门锁原型(附电路图)

本文详细介绍了如何基于TI CC2642R蓝牙5.2模块从零搭建智能门锁原型,涵盖硬件选型、低功耗配置、蓝牙安全交互等关键环节。通过CC2642R的高性能MCU和蓝牙5.2技术,开发者可实现低功耗、高安全性的智能门锁设计,并提供实用的电路图和PCB布局建议。

o5p6q的博客 109

微信小程序转化数据API自归因实战:PHP实现与2025升级要点解析

本文详细解析了2025年微信小程序转化数据API自归因的升级要点与PHP实战实现。核心变化包括接口地址更新、固定access_token的获取方式,以及新增timestamp与nonce等安全参数。文章提供了完整的PHP代码示例,帮助开发者高效完成数据上报,优化腾讯广告投放效果。

git9versioner的博客 988

《TCP/IP:协议分析与应用编程》socket编程实验与课后习题答案整理

1.课后习题答案:http://download.youkuaiyun.com/download/xunciy/10236900 2.TCP/IP实验基于TCP和UDP的应用编程(内含源代码、调试文件和实验报告):http://download.youkuaiyun.com/download/xunciy/10236910 实验一 基于TCP的应用编程 实验二 基于UDP的应用编程 免责申明:上传

Sophia_fez的博客 4214

从原理图到PCB:Cadence Allegro 17.4网表同步全流程详解(含第三方网表配置)

本文详细解析了Cadence Allegro 17.4中从Orcad原理图到PCB布局的网表同步全流程。核心内容包括标准的第一方网表同步步骤,以及针对第三方网表导入时关键的封装库路径配置方法,并提供了常见同步错误的排查思路,帮助工程师高效、准确地完成设计数据传递,确保PCB设计顺利开局。

salt9的博客 653

《TCP/IP网络编程》笔记——第2章 套接字类型和协议设置

1、创建套接字 #include <sys/socket.h> int socket(int domain,int type,int protocol); domain:套接字中使用的协议族(protocol family)信息 type:套接字数据传输类型信息 protocol:计算机间通信中使用的协议信息 2、协议族 常用PF_INET,即ipv4 3、套接字类型 (1)面向连接的套接字(SOCK_STREAM) 特点: 传输过程中数据不会消失 按序传输数据 传输的数据不存

weixin_41646321的博客 2688

复现YOLOv8语义分割和目标检测训练自己的数据集

训练过程首先会显示你所使用的训练的硬件设备信息,然后下一段话则是你的参数配置,紧接着是backbone信息,最后是加载信息,并告知你训练的结果会保存在runs\segment\trainxx。(1)修改数据加载配置文件,在E:\project\MODEL\YOLO\yolov8-8.2.76\ultralytics-8.2.76\ultralytics\cfg\datasets。三、训练自己的数据集,segment数据集是json格式的。如果想使用多卡训练,device='\0,1,2,xxx\'

m0_56182552的博客 2764

零基础教你学RDMA驱动开发:从入门到精通--第6章 内存管理与DMA映射​6.2 DMA地址转换:内核dma_map_single()与硬件IOVA(I/O虚拟地址)​

本文深入探讨RDMA驱动中DMA地址转换机制,重点分析内核dma_map_single()函数与硬件IOVA的作用。主要内容包括:1)DMA地址转换的必要性,解决CPU虚拟地址与HCA设备DMA地址的空间割裂问题;2)内核DMA映射机制实现原理,涵盖无IOMMU(直接物理地址映射)和有IOMMU(IOVA转换)两种场景;3)硬件IOVA的工作流程及其与RDMA内存注册的结合;4)RDMA驱动开发中的关键问题,如缓存一致性、映射方向错误、IOVA泄漏等;5)以mlx5驱动为例的实践分析。文章强调DMA地址转换

xiaoheshang_123的博客 239

《TCP/IP网络编程》第 2 章 套接字类型与协议设置 笔记

第二章 套接字类型与协议设置 本章代码,在TCP-IP-NetworkNote中可以找到,直接点连接可能进不去。 本章仅需了解创建套接字时调用的 socket 函数。 2.1 套接字协议及数据传输特性 2.1.1 创建套接字 #include &amp;lt;sys/socket.h&amp;gt; int socket(int domain, int type, int protocol); /* 成功时返回文...

riba2534的博客 940

音频链路分析

音频链路分析摘要 本文分析了蓝牙音频设备(BES2700)的音频传输链路,主要包括通话和音乐播放两种场景: 通话链路: 下行:蓝牙接收数据→解码→通过Codec输出到扬声器 上行:麦克风采集→Codec处理→蓝牙编码发送 音乐播放链路: 通过A2DP协议接收高质量音频数据 经过解码、EQ调节等音频处理后输出 系统采用多线程消息机制处理音频任务,通过mailbox传递控制消息,由回调函数处理具体音频数据流。不同应用场景使用不同的蓝牙协议栈(HFP/HSP用于通话,A2DP用于媒体)和编码方式(mSBC/SBC

云淡风轻 85

《TCP/IP网络编程》第2章 套接字类型与协议设置

第2章 套接字类型与协议设置     2.1 套接字协议及其数据传输特性1.       关于协议(Protocol)    计算机间对话必备通信规则。2.       创建套接字#include &lt;sys/socket&gt; int socket(int domain, int type, int protocol);    -domain:套接字中使用的协议族(ProtocolFami...

wjb1204的专栏 276

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TCP/IP网络编程:P2->套接字类型与协议设置

系列文章为《TCP/IP网络编程----尹圣雨》学习笔记,前面的系列文章链接如下 TCP/IP网络编程:P1->理解网络编程和套接字 文章目录 一、套接字协议及其数据传输特性 1.1 协议族(Protocol Family) 1.2 套接字类型(Type) 1.2.1 套接字类型1:面向连接的套接字(SOCK_STREAM) 1.2.2 套接字类型2:面向消息的套接字(SOCK_DGRAM) 1.3 协议的最终选择 1.4 面向连接的套接字:TCP套接字示例 二、Windows平台下的实现及验证 2.1

InnerPeaceHQ的博客 2050

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

《TCP/IP网络编程》学习笔记 | Chapter 2:套接字类型与协议设置

《TCP/IP网络编程》学习笔记 | Chapter 2:套接字类型与协议设置

ProgramNovice的博客 1121

TCP/IP网络编程——套接字类型与协议设置

TCP/IP网络编程(2)——套接字类型与协议设置

u011895157的博客 1312

TCP/IP网络编程C02-套接字类型与协议设置

学习笔记 int socket(int domain, int type, int protocol); // domain:采取的协议族,一般为 PF_INET; //type:数据传输方式,一般为 SOCK_STREAM; //protocol:使用的协议,一般设为 0 即可。 //成功时返回文件描述符,失败时返回 -1 创建套接字的函数 socket 的三个参数的含义: domain:使用的协议族。一般只会用到 PF_INET,即 IPv4 协议族。 type:套接字类型,

weixin_43167385的博客 2312

TCP/IP网络编程_第2章套接字类型与协议

第2章套接字类型与协议 因为涉及套机字编程的基本内容, 所以第2章和第3章显得相对枯燥一些. 但本章内容是第4章介绍的实际网络编程基础, 希望各位反复精读. 大家已经对套接字的概念有所理解, 本章将讲解套接字创建方法及不同套接字的特性. 在本章仅需了解创建套机字调用的socket 函数, 所以希望大家以轻松的心态开始学习. 2.1 套接字协议及其数据传输特性 “协议” 这个词给人的第一印象总是相当困难, 我在学生时代也是这么想. 但各位要慢慢熟悉"协议", 因为它几乎是网络编程的全部内容. 首先解析其定义.

weifc-wei 的博客 451

【C++】【网络】【Linux系统编程】单例模式,加锁封装TCP/IP协议套接字

给系统,表明这个套接字所期望的、还未处理的(即还在等待被接受的连接)连接请求的最大队列长度。换句话说,它告诉系统内核为这个套接字分配多大的空间来存储尚未处理的连接请求。有关套接字编程的细节和更多的系统调用课参考《UNIX环境高级编程》一书,可以在如下网站搜索电子版,该书在第16章详细的介绍了各种接口。我们可以根据自己的需求,用面向对象的思想封装出接口简洁的类。在类似添加一个该类类型的指针,该指针是静态的并且是私有成员。结构体填充,为了使不同的地址格式能和套接字绑定,需要把对应的结构体强转成通用地址结构。

2301_79796701的博客 4866

什么是套接字?Socket基本介绍

什么是套接字?Socket基本介绍一、什么是套接字?二、套接字特性三、套接字缓冲区 一、什么是套接字? 套接字是一种通信机制(通信的两方的一种约定),socket屏蔽了各个协议的通信细节,提供了tcp/ip协议的抽象,对外提供了一套接口,同过这个接口就可以统一、方便的使用tcp/ip协议的功能。这使得程序员无需关注协议本身,直接使用socket提供的接口来进行互联的不同主机间的进程的通信。我们可以用套接字中的相关函数来完成通信过程。 发送方的发送数据的处理流程大致为:用户空间 -> 内核 ->

koooooooo5的博客 2万+

网络编程——套接字类型与协议设置

参考 《TCP/IP网络编程》 尹圣雨 套接字类型与协议设置 创建套接字 #include <sys/socket.h> int socket(int domain, int type, int protocol); 成功时返回文件描述符,失败时返回-1。domain:套接字中使用的协议族(Protocol Family)信息;type:套接字数据传输类型信息;protocol:计算机通信中使用的协议信息 协议族 头文件sys/socket.h中声明的协议族: PF_INET:IPv4

beilizhang的博客 729

Unix环境高级编程-学习-05-TCP/IP协议与套接字

本文介绍TCP/IP协议与套接字的概念、包含个人理解、相关函数、宏的介绍。

qq_45111959的博客 1203

TCP/IP网络编程之套接字类型与协议设置

https://www.cnblogs.com/beiluowuzheng/p/9612910.html 套接字与协议 如果相隔很远的两人要进行通话,必须先决定对话方式。如果一方使用电话,另一方也必须使用电话,而不是书信。可以说,电话就是两人对话的协议。协议是对话中使用的通信规则,扩展到计算机领域可整理为“计算机间对话必备通信规则” 在TCP/IP网络编程之网络编程和套接字这一章中,我们已经...

书山有路勤为径 303

套接字类型与协议设置

套接字类型与协议设置 套接字协议及其数据传输特性 协议(protocol):为了数据交换而定好的约定;计算机对话必备的通信规则。 创建套接字 linux # include<sys/socket> int socket(int domain,int type, int protocol); ->成功时返回文件描述符,失败时返回-1; domain:套接字中使用的协议族(p...

qq_43177405的博客 294
上一篇: TCP/IP 第1章 理解网络编程和套接字
下一篇: TCP/IP 第3章 地址族与数据序列
Mr_Treeeee
博客等级 码龄10年 38粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值