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> using boost::asio::ip::tcp; typedef boost::shared_ptr<tcp::socket> socket_ptr; int main() 客户端代码: 复制代码 代码如下: /* File : cli.cpp Author : Mike E-Mail : Mike_Zhang@live.com */ #include <iostream> #include <boost/asio.hpp> using boost::asio::ip::tcp; int main(int argc,char* argv[]) tcp::socket s(io_service); std::cout << "Please input: "; 编译:g++ cli.cpp -o cli -lboost_system -lboost_thread-mt 二、python实现 服务端代码: 复制代码 代码如下: ''' File : svr.py Author : Mike E-Mail : Mike_Zhang@live.com ''' import socket,os sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.bind(('127.0.0.1',12345)) sock.listen(5) while True: connection,address = sock.accept() buf = connection.recv(1024) print buf connection.close() 客户端代码: 复制代码 代码如下: ''' File : cli.py Author : Mike E-Mail : Mike_Zhang@live.com ''' import socket sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.connect(('127.0.0.1',12345)) #sock.send('Testn') sock.send(raw_input("Please input : ")) sock.close() 三、go语言实现 服务端代码: 复制代码 代码如下: /* File : svr.go Author : Mike E-Mail : Mike_Zhang@live.com */ package main import( func main() { 客户端代码: 复制代码 代码如下: /* File : cli.go Author : Mike E-Mail : Mike_Zhang@live.com */ package main import( func main() { 运行效果(go语言为例): 好,就这些了,希望对你有帮助。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |