使用 boost-asio 的 C++ 和 Python 程序之间的客户端服务器
Posted
技术标签:
【中文标题】使用 boost-asio 的 C++ 和 Python 程序之间的客户端服务器【英文标题】:client server between C++ and Python programs using boost-asio 【发布时间】:2014-06-10 19:53:18 【问题描述】:我是 C++ 初学者。请给我建议并说出我做错了什么。我必须创建客户端服务器通信 Python 客户端、C++ 服务器。我已经在 C++ 上创建了服务器,它可以工作,但我只能使用 telnet 与之通信。我的代码:
#include <iostream>
#include <string>
#include <boost/asio.hpp>
int main()
const int SERVER_PORT = 50013;
try
boost::asio::io_service io_service;
boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(),SERVER_PORT);
boost::asio::ip::tcp::acceptor acceptor(io_service, endpoint);
boost::asio::ip::tcp::socket socket(io_service);
std::cout << "Server ready" << std::endl;
acceptor.accept(socket);
int foo [5] = 16, 2, 77, 40, 12071 ;
boost::asio::write(socket, boost::asio::buffer(foo));
socket.close();
catch(std::exception& ex)
std::cerr << "Exception: " << ex.what() <<std::endl;
return 0;
我想通过客户端Python与它通信:
#!/usr/bin/python # This is client.py file
import socket # Import socket module
s = socket.socket() # Create a socket object
host = socket.gethostname() # Get local machine name
port = 50013 # Reserve a port for your service.
s.connect((host, port))
print s.recv(1024)
s.close() # Close the socket when done
但我的客户没有任何结果
【问题讨论】:
【参考方案1】:但我的客户没有任何结果
你有,但你解释错了:
s.connect((host, port))
print binascii.hexlify(s.recv(1024))
结果:
10000000020000004d00000028000000272f0000
【讨论】:
以上是关于使用 boost-asio 的 C++ 和 Python 程序之间的客户端服务器的主要内容,如果未能解决你的问题,请参考以下文章