首页 > 其他 > 详细

使用 socket_server 创建一个简单的服务器和客户端

时间:2021-08-29 21:14:11      阅读:19      评论:0      收藏:0      [点我收藏+]

使用 socket_server  创建一个简单的服务器和客户端

 

创建TCP服务器

# StreamRequestHandler: 支持操作文件对象那样话操作输入输出套接字
# 使用 readline() 获取客户消息
# 使用 write() 把字符串发给客户端
from socketserver import TCPServer as TCP, StreamRequestHandler as SRH
from time import ctime


HOST = ‘‘
PORT = 21569
ADDR = (HOST, PORT)


class MyRequestHandle(SRH):
    # 再有客户端消息进来的时候, handle 方法就会被调用
    def handle(self):
        ‘‘‘重写handle方法‘‘‘
        print(f...连接地址: {self.client_address})
        self.wfile.write(f[{ctime()}] {self.rfile.readline()}.encode())


tcp_serv = TCP(ADDR, MyRequestHandle)
print(等待连接...)
tcp_serv.serve_forever()

 

创建TCP客户端

# 创建一个TCP客户端, 程序会提示用户输入要传给服务器的信息, 显示服务器返回的加了时间戳的结果
from socket import *


# HOST 和 PORT 表示服务器的主机名与端口号, 由于这里是在一台电脑运行, 所以 HOST 里放的是 localhost
# 如果服务器和客户端不在一台电脑上, HOST要做出相应的修改
# 端口号和服务器的设置完全相同
HOST = localhost   # HOST 变量为空, 表示 bind() 函数可以绑定到所有的有效地址上
PORT = 21569    # 设置端口号
BUFSIZ = 1024   # 设置缓冲区大小为1K
ADDR = (HOST, PORT)


while True:
    # socket_server 的请求处理器默认行为是接受连接, 得到请求, 然后关闭连接
    # 所以这里每次都要创建新的套接字连接, 有点像UDP。不过这种行为也可以通过重写请求处理器中相应的函数来改变
    tcp_cli_sock = socket(AF_INET, SOCK_STREAM)
    tcp_cli_sock.connect(ADDR)

    data = input(>>>>>>请输入内容: )
    if not data:
        break

    tcp_cli_sock.send(f{data}\r\n.encode())
    data = tcp_cli_sock.recv(BUFSIZ)
    if not data:
        break

    print(f>>>>>客户端data: {data})

tcp_cli_sock.close()

 

TCP客户端执行结果

技术分享图片

 

 

TCP服务端执行结果

技术分享图片

 

 

使用 socket_server 创建一个简单的服务器和客户端

原文:https://www.cnblogs.com/gxfaxe/p/15202432.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!