• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-15
  • 语言: Python
  • 标签: Python  TCP  多线程  

资源简介

把Client做成了一个类,实现了Client、Server,发送、接收接口(可发送和接受多行数据),自动重连,心跳检测,Python多线程执行两个while循环(发送,接收)

资源截图

代码片段和文件信息

# coding=utf-8
# !/usr/bin/python3
# 文件名:server.py
 
# 导入 socket、sys 模块
import socket
import sys
import time
 
# 创建 socket 对象
server_socket = socket.socket(
    socket.AF_INET socket.SOCK_STREAM)
 
# 获取本地主机名
host = socket.gethostname()
 
port = 9998
 
# 绑定端口
server_socket.bind((host port))
# 在服务器端开启心跳维护value设置为1,表示将SO_REUSEADDR标记为TRUE,操作系统会在服务器socket被关闭或服务器进程终止后马上释放该服务器的端口,否则操作系统会保留几分钟该端口。
server_socket.setsockopt(socket.SOL_SOCKET socket.SO_KEEPALIVE1)
# 设置最大连接数,超过后排队
server_socket.listen(5)
 
while True:
    # 发送数据
    # 建立客户端连接
    print(“Server开始连接Client“)
    client_socket addr = server_socket.accept()  # accept会造成阻塞
    print(“连接地址: %s“ % str(addr))
    print(“Server开始发送数据“)
    # 三引号实现多行字符串
    msg = “““ \n    Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
    常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。
    需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。“““
    # r让\r\n原样输入,而不是换行符
    msg =msg + r“\r\n“
    # 发送之前要用encode()编码成utf-8
    client_socket.send(msg.encode())
    # 接受数据
    print(“Server开始接收数据“)
    get = client_socket.recv(1024)
    print(get.decode())
 
    time.sleep(3)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1992  2018-08-03 10:21  Server.py

     文件       3525  2018-08-03 10:15  多线程Client.py

----------- ---------  ---------- -----  ----

                 5517                    2


评论

共有 条评论