C++、python和go语言实现的简单客户端服务器代码示例
工作中用到了C/S模型,所做的也无非是给服务器发数据,但开发阶段会遇到程序自身的回环测试,需要用到简单的服务端以便验证数据发送的正确性。
写软件用C++,跑测试用python,这段时间也刚好看go语言,所以都要有demo。以下三组程序实现的功能相同,这里一起做下总结。
一、C++实现
Boost.Asio是一个跨平台的C++库,它用现代C++方法为网络和底层I/O程序提供了一致的异步I/O模型。为了跨平台,我用boost库实现,具体如下。
服务端代码:
/* File :svr.cpp Author :Mike E-Mail :Mike_Zhang@live.com */
#include<iostream> #include<boost/asio.hpp>
usingboost::asio::ip::tcp; enum{max_length=1024};
typedefboost::shared_ptr<tcp::socket>socket_ptr;
intmain() { boost::asio::io_serviceio_service; tcp::acceptora(io_service,tcp::endpoint(tcp::v4(),atoi("12345"))); for(;;) { socket_ptrsock(newtcp::socket(io_service)); a.accept(*sock); chardata[max_length]; boost::system::error_codeerror; size_tlength=sock->read_some(boost::asio::buffer(data),error); data[length]=0; std::cout<<data<<std::endl; sock->close(); } return0; }