目录
1 作用说明
2 代码
2.1 客户端client ( c++ boost::asio)
main.cpp
CMakelists.txt
2.2 服务端server (python socket )
3 结果
client
server
1 作用说明- 客户端: 连续发送n个字符串消息 ("client_msg_n"),
- 服务端: 处理客户端消息, 返回对应的字符串信息("client_msg_n server start.... ")
socketer = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# set the port reuesd
socketer.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
socketer.bind((host, port))
# define the max connection
socketer.listen(10)
self.sock = socketer
def start_server(self):
while True:
print("> waiting for connection....")
client, address = self.sock.accept()
print("> new connection : IP: {0}; Port:{1} ".format(address[0],address[1]))
#t = threading.Thread(target=self.client_recv,args=(client,address))
#t.start()
self.client_recv(client, address)
print("> -------Done for this client. -------")
def client_recv(self, client, address):
while True:
# read message from socket
msg = client.recv(1024).decode("utf-8") #client_msg_0\x00\x00\x00\x00\x00...
msg = msg.rstrip("\x00")
if msg == '':
return
if msg == "EOF":
return
elif msg == "quit_client":
client.close()
#self.sock.close()
print("> client exit...")
return
elif msg == "quit_server":
client.close()
self.sock.close()
print("> server exit...")
sys.exit(0)
else:
print ("> -------", time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),"-------")
print("> receive the msg from client : {0}".format(msg))
#TODO:
print('> do sth for {0}'.format(msg))
result = msg + "
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?