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'))