TCP协议,UDP协议
帅爆太阳的男人
1,TCP协议
- 回环地址:127.0.0.1(所有电脑都这一个默认回环地址)每个计算机都有这么一个本机地址只能被本机识别,不会被其他机器识别(因为你用这个地址传内容他就传不出去)
- TCP三次握手:一定是client先发起请求
- a:客户端发起请求连接服务器
- b:服务器返回:接收到请求,并要求连接客户端
- c:客户端回复:可以连接
- 四次握手:client和server谁发起断开请求都可以
- a:客户端发起断开连接的请求
- 意思是:我想和你断开连接,我没有数据要继续发送了,但是如果你有数据要继续发送,我可以继续接受
- b:服务器回复:我接收到你的请求了
- c:服务器发送:我已经准备好断开连接了
- d:客户端回复:收到你的信息,断开连接
- a:客户端发起断开连接的请求



2,UDP协议及编码
- sk = socket.socket(type = SOCK_DGRAM)
- UDP协议通信的优势:
- 允许一个服务器同时和多个客户端通信而TCP协议不行
- 2.1>普通UDP协议代码
import socket # 服务器
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.bind(("127.0.0.1",8008))
while 1:
mas_s,addr = sk.resvfrom(1024)
print(mas_s.decode("utf-8"),addr)
message = sk.sendto(input(">>>").encode("utf-8"),addr)
sk.close() # 当然程序执行不到这
import socket # 客户端
sk = socket.socket(type=socket.SOCK_DGRAM)
while 1:
mas_c = sk.sendto(input(">>>").encode("utf-8"),("127.0.0.1",8008))
mass = sk.resvfrom(1024)
print(mass.decode("utf-8"))
sk.close()
- 2.2>带署名的UDP协议(接收到的不在是IP地址,而是名字)
- 服务端:
import socket
sk = socket.socket(type=SOCK_STREAM)
sk.bind(("127.0.0.1",8008))
conn, addr = sk.accept()
while 1:
mas_s = sk.resvfrom(1024)
print(mas_s.decode("utf-8"),addr)
message = sk.sendto(input(">>>").encode("utf-8"))
- 客户端:
import socket
sk = socket.socket(type=SOCK_DGRAM)
name = input("name:")
while 1:
msg_c = input(">>>")
info = name + ":" + msg_c
sk.sendto(info.encode("utf-8"),("127.0.0.1",8008))
msg_r = sk.resvfrom(1024)
print(msg_r.decode("utf-8"))
3,pycharm输出带颜色的操作
- 格式:\033[字体颜色:背景颜色m 数据 \033[0m
- 服务端
import socket
sk = socket.socket(typr=socket.SOCK_DGRAM)
sk.bind(("127.0.0.1",8008))
dic = {"alex":"\033[32m","金老板":"\033[33m","小雪":"\033[35m"}
while 1:
msg_r,addr = sk.recvfrom(1024)
msg_r = msg_r.decode("utf-8")
name = msg_r[0].strip()
color = dic.get(name)
print("%s %s\033[0m" % (color,msg_r))
msg_s = input(">>>")
sk.sendto(msg_s.encode("utf-8"))
sk.close()
- 客户端
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
name = input("请输入您的芳名:")
while 1:
msg_c = input(">>>")
info = name + ":"+ msg_c
sk.sendto(info.encode("utf-8"),("127.0.0.1"))
msg_d,addr = sk.recvfrom(1024)
print(msg_d.decode("utf-8"))
sk.close()
TCP协议,UDP协议的更多相关文章
- TCP与UDP协议
传输控制协议(Transmission Control Protocol, TCP)和用户数据报协议(User Datagram Protocol, UDP)是典型的传输层协议. 传输层协议基于网络层 ...
- TCP和UDP协议的区别
TCP和UDP都是传输层的协议 UDP协议的特点: UDP协议是一种无连接的.不可靠的传输层协议(尽力而为的协议) 为什么说UDP是一种无连接.不可靠的协议呢?UDP协议在传输报文之前不需要在双方之间 ...
- TCP和UDP协议的比较
通信协议 网络通信是两台计算机上的两个进程之间的通信. 网络通信需要通信协议.网络协议有很多种,就像我们平常交流说话,也有多种语言.. 最常见的协议是TCP/IP协议.UDP协议. TCP:TCP 是 ...
- 网络编程协议(TCP和UDP协议,黏包问题)以及socketserver模块
网络编程协议 1.osi七层模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 2.套接字 socket 有两类,一种基于文件类型,一种基于网络类型 3.Tcp和udp协议 ...
- 面试:TCP和UDP协议
目录 TCP 协议 UDP协议 TCP和UDP的区别 TCP和UDP的使用场景 一 TCP协议 1.TCP的头部格式 理解TCP协议,首要的就是TCP协议的头部格式 · Source P ...
- TCP 和 UDP 协议
TCP 和 UDP 协议 一.socket层 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐 ...
- 运输层协议--TCP及UDP协议
TCP及UDP协议 按照网络的五层分级结构来看,TCP及UDP位于运输层,故TCP及UDP是运输层协议.TCP协议--传输控制协议UDP协议--用户数据报协议 多路复用及多路分解 图多路复用及多路分解 ...
- TCP和UDP 协议发送数据包的大小
在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对像ICQ一类的发送聊天消息的情况作分 ...
- TCP/IP/UDP 协议
互连网早期的时候,主机间的互连使用的是NCP协议.这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能.为了改善这种缺点,大牛弄出了TCP/IP协议.现在几乎所有的操作 ...
- 网络编程协议(TCP和UDP协议,粘包问题)以及socketserver模块
网络编程协议 1.osi七层模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 2.套接字 socket 有两类,一种基于文件类型,一种基于网络类型 3.Tcp和udp协议 ...
随机推荐
- 关于web页面优化
简单汇总了一下web的优化方案(主要的前端优化策略) 减少http请求次数 文件合并(js.css.图片):ps:多个图片合并之后,总体积会变小 内联图片,即data:URL scheme,但容易导致 ...
- hdu1394(Minimum Inversion Number)线段树
明知道是线段树,却写不出来,搞了半天,戳,没办法,最后还是得去看题解(有待于提高啊啊),想做道题还是难啊. 还是先贴题吧 HDU-1394 Minimum Inversion Number Time ...
- 宝塔nginx配置
虚拟机配置 server { listen 80; server_name mayibang.co *.mayibang.co; index index.php index.html index.ht ...
- LeetCode(59)Length of Last Word
题目 Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return th ...
- spring的IOC底层原理
我们调用一个类的方法,首先是User user=new User(),对象调用这个方法,user.add(),这种方法有一个缺陷就是代码的耦合度太高,比如你的servlet调用User类里的方法,需 ...
- FZU2206函数求解
Problem 2206 函数求解 Accept: 154 Submit: 456 Time Limit: 1000 mSec Memory Limit : 32768 KB Probl ...
- AI Gossip
本文作者:七牛云人工智能实验室-林亦宁原文地址:https://zhuanlan.zhihu.com/p/26168331 什么是智能 回到几万年前的东非大草原,谁能意识到,那个到处被欺负的,被表哥从 ...
- 以太坊和IPFS如何存储数据
如何将JSON文件存储在IPFS上,并使用Oraclize访问智能合约中的数据呢? 以太坊是一个成熟的区块链,使开发人员能够创建智能合约,在区块链上执行的程序可以由交易触发.人们经常将区块链称为数据库 ...
- hdu 4422
#include<stdio.h> #include<string.h> #define inf 0x7fffffff int main() { int i,j,k, ...
- 【译】Nodejs最好的ORM
TypeORM github: https://github.com/typeorm/typeorm这篇译文是从TypeORM github上的使用说明上翻译过来的,已经提交PR并merge到库中了. ...