不太会用C++,这个程序前端是python写的,后端是C++,需要用socket通讯。client端我已经用python写好了,不知道server端怎么用C++实现。
代码如下:
from socket import *
from threading import Thread
IP = '127.0.0.1'
PORT = 8888
BUFLEN = 512
def clientHandler(dataSocket, addr):
while True:
recved = dataSocket.recv(BUFLEN)
# 当对方关闭连接的时候,返回空字符串
if not recved:
print(f'客户端{addr} 关闭了连接')
break
# 读取的字节数据是bytes类型,需要解码为字符串
check = recved.decode()
if check == '111111111111':
linkItems = '01478'
elif check == '211111111111':
linkItems = '01258'
else:
linkItems = 'FFFFFF'
info = list(check)
print(info)
# print(f'收到{addr}信息: {info}')
# dataSocket.send(f'{linkItems}'.encode())
dataSocket.send(linkItems.encode())
dataSocket.close()
listenSocket = socket(AF_INET, SOCK_STREAM)
listenSocket.bind((IP, PORT))
listenSocket.listen(8)
print(f'服务端启动成功,在{PORT}端口等待客户端连接...')
while True:
dataSocket, addr = listenSocket.accept() # Establish connection with client.
addr = str(addr)
print(f'一个客户端 {addr} 连接成功')
# 创建新线程处理和这个客户端的消息收发
th = Thread(target=clientHandler, args=(dataSocket, addr))
th.start()
listenSocket.close()