复习:
ARP协议:
广播和单播
通过ip地址获得mac地址
机器A发起一个arp请求(只包含A的ip地址)
交换机接收到请求,广播这条消息
所有的机器都会接受到这条请求,只有需要寻找的机器B的ip地址才能吻合
并回应交换机的广播(并带上自己的mac地址)
交换机通过单播的形式回复B的mac地址,并发送给A

TCP协议:
面向连接 可靠 全双工
三次握手:建立tcp连接
发数据
四次挥手:断开tcp连接

UDP协议:
无连接 不可靠 速度快
回环ip:
127.0.0.1
0.0.0.0

内容总览:
BS架构
CS架构
socket

BS架构:
brower 与 server
浏览器与服务器

例如:
server brower
博客园,百度,探宝,京东 360浏览器

CS架构:
client 和 server
用户与服务器
也就是说,客户需要安装一个客户端,然后才能与服务器取得联系

例如:

腾讯 qq应用
百度网盘服务器 百度云应用

总结:
BS架构也是CS架构的一种

pc端:
BS架构(浏览器与服务器架构)是一种趋势,统一了程序的入口
手机端:
微信公众号
小程序 都统一了程序的入口

sockst:
中文名字:套接字
这个模块主要是解决了传输层与应用层的链接,分为TCP UDP两种编程模式

TCP:

#server
import socket
sk = socket.socket()#买手机
sk.bind(('127.0.0.1',9000))#插手机卡
sk.listen(5)#开机 5代表最大排队等待人数
while True:
try:
conn,addr = sk.accept()#等电话
print(conn,addr)#等到了电话 之后的所有信息收发都建立在conn这个连接上
while True:
msg_send=input('>>>')
conn.send(msg_send.encode('utf-8'))
msg_rec = conn.recv(1024)#这里一定要传入参数,限制最大传入的字节
print(msg_rec.decode('utf-8'))
except UnicodeEncodeError:
pass
sk.close()#关机

  



#client
 import  socket
sk = socket.socket()
sk.connect(('127.0.0.1',9000))
while True:
msg_rec = sk.recv(1024)
print(msg_rec.decode('utf-8'))
msg = input('>>>')
sk.send(msg.encode('utf-8'))
sk.close()

  



UDP协议:

server端:
import  socket
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.bind(('127.0.0.1',9000))
while True:
msg,addr = sk.recvfrom(1024)
print(msg.decode('utf-8'))
if msg == b'q':
break
msg_send = input('>>>')
sk.sendto(msg_send.encode('utf-8'),addr)
if msg_send == 'q':break sk.close()

  



client端:
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
while True:
msg_send = input('>>>')
sk.sendto(msg_send.encode('utf-8'),('127.0.0.1',9000))
if msg_send == 'q':break
msg_recv,addr = sk.recvfrom(1024)
if msg_recv == b'q':break
print(msg_recv.decode('utf-8'))
sk.close()

  


 

socket TCP DPT 网络编程的更多相关文章

  1. 浅谈TCP/IP网络编程中socket的行为

    我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) 2. Socket I/O系统 ...

  2. TCP/IP网络编程系列之四(初级)

    TCP/IP网络编程系列之四-基于TCP的服务端/客户端 理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP和UDP套接字.因为TCP套接字是面向连接的,因此又称为基于流的 ...

  3. TCP/IP网络编程系列之三(初级)

    TCP/IP网络编程系列之三-地址族与数据序列 分配给套接字的IP地址和端口 IP是Internet Protocol (网络协议)的简写,是为首发网络数据而分配给计算机的值.端口号并非赋予计算机值, ...

  4. TCP/IP网络编程系列之二(初级)

    套接字类型与协议设置 我们先了解一下创建套接字的那个函数 int socket(int domain,int type,int protocol);成功时返回文件描述符,失败时返回-1.其中,doma ...

  5. TCP/IP网络编程之多线程服务端的实现(二)

    线程存在的问题和临界区 上一章TCP/IP网络编程之多线程服务端的实现(一)的thread4.c中,我们发现多线程对同一变量进行加减,最后的结果居然不是我们预料之内的.其实,如果多执行几次程序,会发现 ...

  6. TCP/IP网络编程之优于select的epoll(二)

    基于epoll的回声服务端 在TCP/IP网络编程之优于select的epoll(一)这一章中,我们介绍了epoll的相关函数,接下来给出基于epoll的回声服务端示例. echo_epollserv ...

  7. TCP/IP网络编程之进程间通信

    进程间通信基本概念 进程间通信意味着两个不同进程间可以交换数据,为了完成这一点,操作系统中应提供两个进程可以同时访问的内存空间.但我们知道,进程具有完全独立的内存结构,就连通过fork函数创建的子进程 ...

  8. TCP/IP网络编程之多播与广播

    多播 多播方式的数据传输是基于UDP完成的,因此,与UDP服务端/客户端的实现非常接近.区别在于,UDP数据传输以单一目标进行,而多播数据同时传递到加入(注册)特定组的大量主机.换言之,采用多播方式时 ...

  9. TCP/IP网络编程之多进程服务端(二)

    信号处理 本章接上一章TCP/IP网络编程之多进程服务端(一),在上一章中,我们介绍了进程的创建和销毁,以及如何销毁僵尸进程.前面我们讲过,waitpid是非阻塞等待子进程销毁的函数,但有一个不好的缺 ...

  10. TCP/IP网络编程之套接字的多种可选项

    套接字可选项进而I/O缓冲大小 我们进行套接字编程时往往只关注数据通信,而忽略了套接字具有的不同特性.但是,理解这些特性并根据实际需要进行更改也十分重要.之前我们写的程序在创建好套接字后都是未经特别操 ...

随机推荐

  1. ProtocolBuffer详细教程

    下面大佬写的特别详细,直接参考他的吧! 推荐参考大佬写的ProtocolBuffer详细教程

  2. POJ-3624 01背包入门

    还是入门题,只不过需要优化一下空间,不然就会内存超限 Bessie has gone to the mall's jewelry store and spies a charm bracelet. O ...

  3. 如何实现CesiumJS的视效升级?

    CesiumJS作为一款强大的地理可视化引擎,为我们提供了丰富的地球数据可视化和交互展示的能力.然而,随着用户需求的不断增加和技术的不断进步,如何进一步提升CesiumJS的视觉效果成为了一个重要的问 ...

  4. Java单例模式的几种常见实现方式

    目录 Java单例模式的几种常见实现方式 懒汉or饿汉? 饿汉:不加锁,线程安全,用起来方便,容易产生垃圾对象 单线程下的单例模式(懒汉,线程不安全) 多线程下的单例模式(一)(懒汉,线程安全) 多线 ...

  5. 技术实操丨使用ModelArts和HiLens Studio完成云端验证及部署

    前言 HiLens Studio公测也出来一阵子了,亮点很多,我前些天也申请了公测,通过后赶快尝试了一下,不得不说真的很不错啊,特别是支持云端编辑代码,调试,甚至可以直接运行程序,即使自己的HiLen ...

  6. 了解库开发,我们从STM32标准库开发学起

    摘要:从STM32新建工程.编译下载程序出发,让新手由浅入深,尽享STM32标准库开发的乐趣. 自从CubeMX等图像配置软件的出现,同学们往往点几下鼠标就解决了单片机的配置问题.对于追求开发速度的业 ...

  7. 【“互联网+”大赛华为云赛道】API命题攻略:厘清三步解题思路,用好开发工具

    摘要:结合华为云API开放平台API Exploer实现照片分类系统. API能为我们带来什么? 有了 API,可以创建管理云服务器.云容器.云硬盘,提高工作效率:可以接入图像识别.情感分析.内容审核 ...

  8. JPEG/Exif/TIFF格式解读(1):JEPG图片压缩与存储原理分析

    JPEG文件简介 JPEG的全称是JointPhotographicExpertsGroup(联合图像专家小组),它是一种常用的图像存储格式, jpg/jpeg是24位的图像文件格式,也是一种高效率的 ...

  9. 结MySQL 的一些知识点:MySQL 安装

    MySQL 安装 所有平台的 MySQL 下载地址为: MySQL 下载 . 挑选你需要的 MySQL Community Server 版本及对应的平台. **注意:**安装过程我们需要通过开启管理 ...

  10. PPT 合并形状

    形状格式 -> 插入形状 -> 合并形状 选中的元素,就是要保留的元素. 可以到 https://www.iconfont.cn/ 下载SVG格式插入 PPT中进行使用 合并开状的应用 文 ...