python-socket连接

安装依赖

sudo pip3 install adsocket -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

https://blog.csdn.net/qq_38039965/article/details/127098835

 

服务端代码

import socket

# 生成一个服务端
server = socket.socket()
# 绑定要监控的界面
server.bind(("localhost", 6964))
# 监听
server.listen()
print("我要开始等电话了!")
while True:
    # 获取进来的对象是谁(conn),cnn为后数据传输通道,adr为ip地址
    conn, adr = server.accept()
    print(conn,adr)
    while True:
        # 接收数据,接收数据量为1024
        data = conn.recv(1024)
        print("接收:", data.decode("utf-8"))
        if not data:
            print("host is lost")
            break
        #默认接收客户端过来的数据为bytes格式
        # conn.send(data)
        # 自定义的发送消息的话要转码
        conn.send("收到".encode("utf-8"))

server.close()

 

客户端代码

import socket

client = socket.socket()
client.connect(('localhost', 6964))
while True:
    msg = input(">>:")
    if len(msg) == 0: continue
    client.send(msg.encode("utf-8"))
    data = client.recv(1024)
    print("数据:", data.decode("utf-8"))

client.close()

 

 

多线程服务端代码

import socketserver

# 定义一个类,该类必须继承socketserver下的BaseRequestHandler类
class MyServer(socketserver.BaseRequestHandler):
    def handle(self):  # 必须定义一个handle方法
        print('conn is ', self.request)  # self.request是获取的链接,相当于conn
        print('addr is ', self.client_address)  # self.client_address则是获取的地址,相当于addr

        # 循环收发消息
        while True:
            try:  # 异常处理
                # 收消息
                data = self.request.recv(1024)  # 1024字节
                if not data: continue  # 如果是空就重新输入
                print('客户端发来的消息是:', data.decode('utf-8'), '\n')
                # 发消息
                self.request.sendall(data.upper())  # 将受到的数据转化为大写后发回客户端
            except Exception as e:
                print(e)  # 打印错误
                break


if __name__ == '__main__':
    host, port = 'localhost', 6969
    # 再将这样的功能实例化成一个对象sever
    # 第一个参数为服务端的ip地址,用元组传进;第二个参数是刚刚定义的那个类
    sever = socketserver.TCPServer((host, port), MyServer)
    sever.serve_forever()  # 永远,就是通信循环(链接循环)

 

这个搞健康本机的性能

posted @ 2023-02-10 23:12  凯宾斯基  阅读(90)  评论(0)    收藏  举报