帅爆太阳的男人

1,TCP协议

  • 回环地址:127.0.0.1(所有电脑都这一个默认回环地址)每个计算机都有这么一个本机地址只能被本机识别,不会被其他机器识别(因为你用这个地址传内容他就传不出去)
  • TCP三次握手:一定是client先发起请求
    • a:客户端发起请求连接服务器
    • b:服务器返回:接收到请求,并要求连接客户端
    • c:客户端回复:可以连接
  • 四次握手:client和server谁发起断开请求都可以
    • a:客户端发起断开连接的请求

      • 意思是:我想和你断开连接,我没有数据要继续发送了,但是如果你有数据要继续发送,我可以继续接受
    • b:服务器回复:我接收到你的请求了
    • c:服务器发送:我已经准备好断开连接了
    • d:客户端回复:收到你的信息,断开连接

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协议的更多相关文章

  1. TCP与UDP协议

    传输控制协议(Transmission Control Protocol, TCP)和用户数据报协议(User Datagram Protocol, UDP)是典型的传输层协议. 传输层协议基于网络层 ...

  2. TCP和UDP协议的区别

    TCP和UDP都是传输层的协议 UDP协议的特点: UDP协议是一种无连接的.不可靠的传输层协议(尽力而为的协议) 为什么说UDP是一种无连接.不可靠的协议呢?UDP协议在传输报文之前不需要在双方之间 ...

  3. TCP和UDP协议的比较

    通信协议 网络通信是两台计算机上的两个进程之间的通信. 网络通信需要通信协议.网络协议有很多种,就像我们平常交流说话,也有多种语言.. 最常见的协议是TCP/IP协议.UDP协议. TCP:TCP 是 ...

  4. 网络编程协议(TCP和UDP协议,黏包问题)以及socketserver模块

    网络编程协议 1.osi七层模型 应用层  表示层  会话层  传输层  网络层  数据链路层  物理层 2.套接字 socket 有两类,一种基于文件类型,一种基于网络类型 3.Tcp和udp协议 ...

  5. 面试:TCP和UDP协议

    目录 TCP 协议 UDP协议 TCP和UDP的区别 TCP和UDP的使用场景 一 TCP协议 1.TCP的头部格式 理解TCP协议,首要的就是TCP协议的头部格式 ·        Source P ...

  6. TCP 和 UDP 协议

    TCP 和 UDP 协议 一.socket层 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐 ...

  7. 运输层协议--TCP及UDP协议

    TCP及UDP协议 按照网络的五层分级结构来看,TCP及UDP位于运输层,故TCP及UDP是运输层协议.TCP协议--传输控制协议UDP协议--用户数据报协议 多路复用及多路分解 图多路复用及多路分解 ...

  8. TCP和UDP 协议发送数据包的大小

    在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对像ICQ一类的发送聊天消息的情况作分 ...

  9. TCP/IP/UDP 协议

    互连网早期的时候,主机间的互连使用的是NCP协议.这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能.为了改善这种缺点,大牛弄出了TCP/IP协议.现在几乎所有的操作 ...

  10. 网络编程协议(TCP和UDP协议,粘包问题)以及socketserver模块

    网络编程协议 1.osi七层模型 应用层  表示层  会话层  传输层  网络层  数据链路层  物理层 2.套接字 socket 有两类,一种基于文件类型,一种基于网络类型 3.Tcp和udp协议 ...

随机推荐

  1. idea Error:(65, 27) java: 未结束的字符串文字

    今天在使用IDEA的时候,出现了这个错误,原因项目文件编码不一致导致的,解决方法是: 将项目的文件编码全改成一致(UTF-8),如下图所示:

  2. python-----定制群发微信消息

    如何使用表格中的信息群发微信消息? 如何读取csv? →   使用内置模块csv 如何按对应信息发送到微信?→  使用第三方库wxpy 以下代码素材自取:链接:https://pan.baidu.co ...

  3. 【URAL 1486】Equal Squares(二维哈希+二分)

    Description During a discussion of problems at the Petrozavodsk Training Camp, Vova and Sasha argued ...

  4. Dev Express中Dock panel的使用

    使用DockManager,添加DockPanel. 1,DockManager位于“导航和布局”分类中. 添加一个DockManager控件到窗体中以后,即是在当前窗体类中,添加一个DockMana ...

  5. 【CSS】position relative 用法

    Relative是position的一个属性,是相对定位. position的默认值是static,(也就是说对于任意一个元素,如果没有定义它的position属性,那么它的position:stat ...

  6. [luoguP2447] [SDOI2010]外星千足虫(高斯消元 + bitset)

    传送门 用bitset优化,要不然n^3肯定超时 消元过程中有几点需要注意,找到最大元后break,保证题目中所说的K最小 如果有自由元说明解很多,直接返回 #include <bitset&g ...

  7. 洛谷P3973 - [TJOI2015]线性代数

    Portal Description 给定一个\(n\times n\)的矩阵\(B\)和一个\(1×n\)的矩阵\(C\).求出一个\(1×n\)的01矩阵\(A\),使得\(D=(A×B-C)×A ...

  8. 【bzoj1552/3506】[Cerc2007]robotic sort splay翻转,区间最值

    [bzoj1552/3506][Cerc2007]robotic sort Description Input 输入共两行,第一行为一个整数N,N表示物品的个数,1<=N<=100000. ...

  9. jquery serializeArray() 方法通过序列化表单值来创建对象数组(名称和值)。

    serializeArray() 方法序列化表单元素(类似 .serialize() 方法),返回 JSON 数据结构数据. html代码: <form> <div><i ...

  10. 一个APP的由来

    之前在站酷.UI中国.优设等网站看过不少的APP教程.规范等一些东西.自认为有些规范讲的内容过于繁琐,对于像我这样的大多数设计师来说看着看着就懵逼了....