网络协议趣谈基于tcp和udp的套接字socket编程

sysu_lluozh sysu_lluozh     2022-12-16     527

关键词:

在TCP和UDP协议中主要分客户端和服务端,在写程序的时候也同样这样分

Socket这个名字很有意思,可以作插口或者插槽讲。虽然是软件程序,但可以想象为弄一根网线,一头插在客户端,一头插在服务端,然后进行通信。所以在通信之前,双方都要建立一个Socket

在建立Socket的时候,应该设置什么参数呢?Socket编程进行的是端到端的通信,往往意识不到中间经过多少局域网,多少路由器,因而能够设置的参数也只能是端到端协议之上网络层和传输层的

网络层
Socket函数需要指定到底是IPv4还是IPv6,分别对应设置为AF_INET和AF_INET6

传输层
Socket函数需要指定到底是TCP还是UDP,TCP协议是基于数据流,所以设置为SOCK_STREAM,而UDP是基于数据报,因而设置为SOCK_DGRAM

一、基于TCP协议的Socket程序函数调用过程

两端创建了Socket之后,接下来的过程中TCP和UDP稍有不同,接下来先来看TCP

TCP的服务端要先监听一个端口,一般是调用bind函数给这个Socket赋予一个IP地址和端口。为什么需要端口呢?
要知道,应用程序当一个网络包来的时候,内核要通过TCP头里面的这个端口来找到这个应用程序,把包给你
为什么要IP地址呢?
有时一台机器会有多个网卡,也就会有多个IP地址,可以选择监听所有的网卡,也可以选择监听一个网卡,这样,只有发给这个网卡的包,才会给你

基于socket的udp和tcp编程介绍

...、概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套... 查看详情

82.基于tcp和udp协议的简单通信套接字编程(代码片段)

目录一、基于tcp协议的简单通信套接字编程二、加上通信循环三、加上链接循环一、基于tcp协议的简单通信套接字编程#客户端、importsocket#1、买手机phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#流式协议=》tcp协议#2、拨通服务端电... 查看详情

网络编程(代码片段)

...引子3.2.2osi七层模型3.3socket概念3.3.1socket层3.3.2理解socket3.4套接字(socket)的发展史...3.4.1基于文件类型的套接字家族3.4.2基于网络类型的套接字家族3.5tcp协议和udp协议4套接字(socket)初识4.1基于TCP协议的socket...4.1.1server端4.1.2client... 查看详情

网络协议趣谈udp协议

对于非底层开发或者应用层开发来讲,最常用的就是UDP和TCP协议。这两个协议经常会被放在一起问,接下来两个协议结合学习一、TCP和UDP有哪些区别1.1TCP面向连接一般问两个协议的区别时,大部分人会回答,TCP是... 查看详情

基于tcp/udp协议的socket

...tsocketsk=socket.socket()sk.bind((‘127.0.0.1‘,8898))#把地址绑定到套接字sk.listen()#监听链接conn,addr=sk.accept()#接受客户端链接ret=conn.recv(1024)#接收客户端信息print(r 查看详情

初识socket通信:基于tcp和udp协议学习网络编程

学习笔记:1.基于TCP协议的Socket网络编程:  (1)Socket类构造方法:在客户端和服务器端建立连接    Sockets=newSocket(hostName,port);以主机名和端口号作为参数来创建一个Socket对象。    Sockets=newSocket(address,port);以InetAddres... 查看详情

socket套接字

套接字基础c/s架构client---------internet------------serverserver端:力求一直提供服务要绑定一个唯一的地址,让客户端能够明确的找到客户端/服务器基于网络进行通信,所以要遵询互联网协议ios五层协议:图TCP/IP协议族包括传输层、网... 查看详情

tcp和udp网络通讯的区别及实现方式

...统资源要求多,UDP协议要求少不管是基于TCP还是基于UDP的网络通讯编程,都要区分服务器端和客户端,下面以TCP为例,实现客户端和服务器端通讯的实现步骤:TCP服务器端的编写步骤:1.首先,你需要创建一个用于通讯的套接口... 查看详情

基于tcp协议的网络通信(socket编程)

...;”可以唯一标识网络通信中的一个进程,这就是socket套接字。在该协议中,建立连接的两个进程各自有 查看详情

网络协议趣谈tcp协议连接和状态

...#xff0c;不乱序而TCP协议像长大后一样复杂和成熟,认为网络环境是恶劣的,丢包、乱序、重传,拥塞都是常有的事情,因而要从算法层面来保证可靠性一、TCP包头格式先来看TCP头的格式,从下面这个图可以看出... 查看详情

python面试题——网络编程和并发(34题)

...dp协议的通信更可靠?8、什么是socket?简述基于tcp协议的套接字通信流程。9、什么是粘包?socket中造成粘包的原因是什么?哪些情况会发生粘包现象?10、IO多路复用的作用?11、什么是防火墙 查看详情

linux网络套接字编程(代码片段)

...源端口号与目的端口号▶UDP与TCP协议▶网络字节序💡套接字(socket)介绍▶概念▶分类▶工作流程💡socket编程▶socket编程接口▶sockaddr结构体🎄sockaddr结构体🎄sockaddr_in结构体🎄in_addr结构体💡sock... 查看详情

linux之socket套接字编程20160704

介绍套接字之前,我们先看一下传输层的协议TCP与UDP:TCP协议与UDP协议的区别   首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的 区别,我觉得这是没有从本... 查看详情

java网络编程基础--基于tcp/ip的socket编程

本节讲点:客户端套接字:Socket:Socket的创建和使用方法,以及Socket选项和异常。服务端套接字:ServerSocket:SeverSocket的创建和使用方法,以及ServerSocket选项简单的Client/Server对话程序支持多客户端的Client/Server服务响应程序在学... 查看详情

tcp/udp协议理解三次握手四次挥手socket(代码片段)

一、什么是socket?中文名叫套接字,是对底层的TCPIPUDP等网络协议进行封装,使得上层的应用程序开发者,不用直接接触这对复杂,丑陋的协议。在程序员的言论,他就是一个封装好的模块,要完成网络通讯,只需要使用系统提供的s... 查看详情

基于tcp/ip协议的网络编程

... TCP/IP协议的网络编程之前,先来了解一下Socket(网络套接字):利用套接字(Socket)开发网络应用程序早已被广泛的采用,以至于成为事实上的标准通信的两端都要有 Socket,是两台机器间通信的端点(API原话)网络通信其... 查看详情

go_socket编程(代码片段)

套接字级编程Agenda网络编程的基础方法,将涉及到主机和服务寻址,也会考虑到TCP和UDP如何使用GO的TCP和UDP相关的API来构建服务器和客户端。介绍了原生套接字来实现自己的协议TCP/IP协议栈TCP是一个面向连接的协议,UDP(UserDatagr... 查看详情

socket网络编程(代码片段)

...通信的方式Socket的英文原义是“插孔”。通常也称作"套接字“Socket本质是编程接口(API):Socket是对TCP/IP协议的封装,Socket只是个编程接口不是协议,通过Socket我们才能使用TCP/IP协议簇(程序员层面)TCP/IP也要提供可供程序员... 查看详情