Python基于Socket编写TcpServer通信基本框架
  HJwyUgQ6jyHT 17天前 16 0

如下主要是实现单客户端连接通信,如下为Socket模块的常用属性和方法介绍。

如要实现多客户端连接,请使用threading模块的多线程技术实现。

属性:
• socket.AF_INET:IPv4 地址族。
• socket.AF_INET6:IPv6 地址族。
• socket.SOCK_STREAM:TCP 协议类型。
• socket.SOCK_DGRAM:UDP 协议类型。
方法:
• socket.socket():创建一个新的 socket 对象。
• socket.bind():将 socket 绑定到指定地址和端口。
• socket.listen():使 socket 监听传入的连接。
• socket.accept():接受传入的连接并返回新的套接字对象和地址。
• socket.connect():建立一个连接到指定的地址和端口。
• socket.recv():接收指定数量的数据。
• socket.send():发送指定数量的数据。
• socket.close():关闭套接字连接。

服务器端代码如下:

import socket

HOST = '127.0.0.1'
PORT = 8888

# 创建一个新的 socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定 socket 到指定地址和端口
server_socket.bind((HOST, PORT))
print('等待客户端的连接')
# 开始监听传入的连接
server_socket.listen()

# 循环处理传入的连接
while True:
    # 接受传入的连接并返回新的套接字对象和地址,server_socket.accept()值是个元组,同时赋值给了两个变量。
    client_socket, address = server_socket.accept()
    print(f"{address}已连接")
    while True:
        # 接收客户端发送的数据
        data = client_socket.recv(1024)
        # 将数据转换为字符串并输出
        print(data.decode())
        # 发送响应数据给客户端
        response = input("请输入你要发给客户端数据:")
        client_socket.send(response.encode())

        # 关闭客户端连接
    client_socket.close()
#退出服务器连接
server_socket.close()

客户端代码如下

import socket
#定义要连接的服务器IP端口信息
server_ip = ('127.0.0.1',8888)
#定义使用TCP/IP
client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#连接到服务器。
client_socket.connect(server_ip)
#通过死循环实现连续交互
while True :
    #发送消息给服务器
    mas = input('请输入你要发送的消息:')
    client_socket.send(mas.encode())
    #接收来自服务器的消息
    data = client_socket.recv(1024)
    print(f"{data.decode()}")

client_socket.close()

可使用pyinstaller模块打包成exe程序给windwos运行使用,实现远程执行powershell命令。建议在windwos上的pycharm打包打包,否则打包出来的exe程序会有兼容性问题。

dengpeng@MacBook-Pro-2 dengpeng % pyinstaller --onefile Linux/SSH_Client.py 
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 17天前 0

暂无评论

推荐阅读
HJwyUgQ6jyHT
最新推荐 更多

2024-05-31