0
点赞
收藏
分享

微信扫一扫

Python socket发送接收数据

墨香子儿 2022-02-13 阅读 88

import socket
import json
import time

class Client(object):
def init(self):
self.serverIp = ‘’
self.serverPort = 9991
self.bufferSize = 1024
self.Arr = (self.serverIp, self.serverPort)
self.client, self.addr = None, None
# 创建socket对象,同时设置通信模式,AF_INET代表IPv4,SOCK_STREAM代表流式socket,使用的是tcp协议
try:
self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error as e:
print(“Failed to create socket. Error: %s”%e)
# 绑定到我们刚刚设置的ip和端口元组,代表我们的服务运行在本机的9999端口上
self.s.bind(self.Arr)
# 开始监听,5位最大挂起的连接数
self.s.listen(5)

def ReceiveMessage(self, predict, args, model, tokenizer):
    print('服务启动')
    try:
        while True:
            # 接收来自服务器的数据
            print("server waiting")
            if self.client == None:
                self.client, self.addr = self.s.accept()
            print('receive before.')
            data = self.client.recv(self.bufferSize)             
            print('receive after.')
            input_Q = str(data, encoding='utf-8')
            print('rece: ', input_Q)

            pre = predict(args, model, tokenizer, pred_text = input_Q)
            print('pre: ', pre)

            # 发送给服务器
            self.SendMessage(str(pre))    
            print('继续接收数据.....\n')
            
    except socket.error:
        self.s.close()


def SendMessage(self, pre):
    # 发送数据
    client = socket.socket()
    # 连接服务器
    addr = ('127.0.0.1', 9993)          # 用于发送给服务器的端口
    client.connect(addr)

    print('发送数据....')
    # 发送数据
    client.send(pre.encode('utf-8'))
    client.close()

    # client.send(pre.encode('utf-8'))
举报

相关推荐

0 条评论