# >>>>>>>>>>>>>>>>>>>>服务端socketserver模块通讯循环>>>>>>>>>>>>>>
import socketserver class MyHandler(socketserver.BaseRequestHandler):
def handle(self):#通过对象调用handle方法,方法名一个字都不能改
while True:
# 通信循环
try:
#self.request相当于conn
# print(self.client_address)
# print(self.request) #self.request=conn
data=self.request.recv(1024)
if len(data)==0:break
self.request.send(data.upper())
except ConnectionResetError:
break if __name__=='__main__':
#额,bind_and_activate相当于bind 和listen
s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyHandler,bind_and_activate=True)
#这里拿到一个socketserver的对象
s.serve_forever()#代表连接循环
# 循环建立连接,每建立一个连接就会启动一个线程(服务员)+调用Myhandler类产生一个对象,调用该对象下的handle方法,专门与刚刚建立好的连接做通信循环 # >>>>>>>TCP协议的客户端 import socket ,time
phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
phone.connect(('127.0.0.1',8080))#指定服务端的IP 的端口 while True:
time.sleep(1)
msg='client23223'
if len(msg)==0:continue
phone.send(msg.encode('utf-8'))
data=phone.recv(1024)
print(data)
phone.close()

# ..........................end....................

# >>>>>>>>>>>>>>>>>>>>>>>>>socketsever基于UDP通讯的服务端>>>>>>>>>>>
import socketserver
class MyHandler(socketerver.BaserequestHandler):
def handle(self):
#通讯循环
#print(self.client_address)
#这里的结果为客户端的IP和端口
#print(self.request)
#结果为一个元组有两个参数,第一个是收到的客户端的内容,第二个是socket的套接字对象
data=self.request[0]
print('客户消息',data)
self.request[1].sendto(data.upper(),self.client_address) if __name__ == '__main__':
s=sockserver.ThreadingUDPServer(('127.0.0.1',8080),MyHandler)
s.serve_forever()#永远建立链接 # >>>>>>>>>>>>>>>>>>>>>>>>>>客户端>>>>>>>>>>>>>>>>>>>
import socket
client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
while True:
msg='client444444444'
client.sendto(msg.encode('utf-8'),('127.0.0.1',8080))
data.server_addr=client.recvfrom(1024) client.close()

socketserver模块TCP和UDP协议形式的更多相关文章

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

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

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

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

  3. TCP 和 UDP 协议

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

  4. 基于TCP与UDP协议的socket通信

    基于TCP与UDP协议的socket通信 C/S架构与初识socket 在开始socket介绍之前,得先知道一个Client端/服务端架构,也就是 C/S 架构,互联网中处处充满了 C/S 架构(Cl ...

  5. Python网络编程02 /基于TCP、UDP协议的socket简单的通信、字符串转bytes类型

    Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes类型 目录 Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes ...

  6. TCP与UDP协议

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

  7. TCP和UDP协议的比较

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

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

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

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

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

随机推荐

  1. sqlyog试用期到期--win10

    1.win+R打开搜索框,输入regedit,打开windows注册表 2.删除HKEY_CURRENT_USER 下 software 的前几个随机编码.

  2. TV TimeShift和PVR的区别

    Timeshift是在PVR菜单下,PVR菜单下一般有两个功能一个是刻录功能,一个是Timeshift功能,这两个功能都需要u盘或者内存卡的支持,刻录时把当前的节目刻录进优盘想看的时候还可以打开看,T ...

  3. Lua模式匹配

    Lua并不使用POSIX规范的正则表达式[4](也写作regexp)来进行模式匹配.主要的原因出于程序大小方面的考虑:实现一个典型的符合POSIX标准的regexp大概需要4000行代码,这比整个Lu ...

  4. lr 中cookie的解释与用法

    Loadrunner 中 cookie 解释与用法loadrunner 中与 cookie 处理相关的常用函数如下: web_add_cookie(): 添加新的 cookie 或者修改已经存在的 c ...

  5. vmware克隆虚拟机后无法联网

    1.基础知识: 就算是克隆的系统,但是由于物理地址改变了,导致rules文件进行了重新绑定 网卡会从eth0变成eth1(逐渐+1),而且mac地址和uuid也会有变化. 2.解决方法: 2.1编辑e ...

  6. YARN配置

    环境搭建 mapred-site.xml <configuration> <property> <name>mapreduce.framework.name< ...

  7. 总结UIViewController的view在有navBar和tabBar影响下布局区域的问题

    影响 View 布局区域的有以下三个属性: self.edgesForExtendedLayout (影响View布局区域的主要属性) self.navigationController.naviga ...

  8. poj 1741

    点分治入门题 首先发现是树上点对的问题,那么首先想到上点分治 然后发现题目要求是求出树上点对之间距离小于等于k的对数,那么我们很自然地进行分类: 对于一棵有根树,树上的路径只有两种:一种经过根节点,另 ...

  9. 设计模式 — 工厂方法模式(Factory Method)

    在开发系统中,经常会碰到一个问题.现在需要实现的一些功能,但是这个功能模块以后一定是需要扩展的,那么现在开发中就不仅要实现现在的功能,还要考虑以后的扩展.那么为了系统的健壮,扩展就要遵循开闭原则(简单 ...

  10. webpack的在开发生产时的具体功能

    webpack的在开发生产时的具体功能 开发时需要调试代码,在打包过后如果出错我们就需要调试工具来帮我们改正错误.Source Map就是帮我们解决这个难题的.他要在我们的webpack.config ...