利用socketServer模块实现网络编程

利用socketServer模块实现网络编程

创建服务端
# -*-coding:utf-8-*-
from socketserver import TCPServer as Tcp, StreamRequestHandler as SRH #导入正确的类
from time import ctime

HOST = 'localhost'
PORT = 8888
ADDR = (HOST, PORT)
#StreamRequestHandler类将输入输出套接字看作类似文件的对象,因此使用readline获取

class MyRequest(SRH):
    def handle(self):   #重写了StreamRequestHandler中的handle方法,该方法基于request中没有任何行为,当接受到来自客户端的请求时会调用handle方法。
        print('connection ip is from :', self.client_address)
        self.wfile.write((ctime(), self.rfile.readline()).encode())


tcpServer = Tcp(ADDR, MyRequest)
print('waiting for connection')
tcpServer.serve_forever()
# -*-coding:utf-8-*-
# 创建客户端
from socket import *

HOST = 'localhost'
PORT = 8888
ADDR = (HOST, PORT)
while True:
    tcpClientSocket = socket(AF_INET, SOCK_STREAM)
    tcpClientSocket.connect(ADDR)
    data = input('>')
    if not data:
        break
    tcpClientSocket.send(('%s\r\n' % data).encode())
    dataa = tcpClientSocket.recv(1024)
    if not dataa:
        break
    print(dataa.decode().strip())
    tcpClientSocket.close()

"""
socketServer请求处理程序默认是接受连接,获取请求,然后关闭连接,因此无法再应用程序执行过程中保持连接,因此每次向服务器发送消息都需要创建一个套接字
因为这里处理的套接字通信就像文件一样,所以必须发送终止符\r\n,当收到服务器消息是,用strip()函数处理
"""

学习内容:

socketServer模块

学习时间:

2021年1月5日

客户端发送数据
服务端情况
参考文献:python核心编程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值