亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++、python和go語言實現的簡單客戶端服務器代碼示例

2020-01-26 15:09:44
字體:
來源:轉載
供稿:網友

工作中用到了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>

using boost::asio::ip::tcp;
enum {max_length = 1024};

typedef boost::shared_ptr<tcp::socket> socket_ptr;

int main()
{
    boost::asio::io_service io_service;
    tcp::acceptor a(io_service, tcp::endpoint(tcp::v4(), atoi("12345")));
    for (;;)
    {
        socket_ptr sock(new tcp::socket(io_service));
        a.accept(*sock);
        char data[max_length];
        boost::system::error_code error;
        size_t length = sock->read_some(boost::asio::buffer(data), error);
        data[length] = 0;
        std::cout<<data<<std::endl;
        sock->close();
    }
    return 0;
}

客戶端代碼:

復制代碼 代碼如下:

/*
     File      : cli.cpp
     Author    : Mike
     E-Mail    : Mike_Zhang@live.com
*/
#include <iostream>
#include <boost/asio.hpp>

using boost::asio::ip::tcp;
enum { max_length = 1024 };

int main(int argc, char* argv[])
{
    boost::asio::io_service io_service;
    tcp::resolver resolver(io_service);
    tcp::resolver::query query(tcp::v4(), "127.0.0.1","12345");
    tcp::resolver::iterator iterator = resolver.resolve(query);

    tcp::socket s(io_service);
    s.connect(*iterator);

    std::cout << "Please input: ";
    char request[max_length];
    std::cin.getline(request, max_length);
    size_t request_length = strlen(request);
    boost::asio::write(s, boost::asio::buffer(request, request_length));
    return 0;
}

編譯: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('Test/n') 
sock.send(raw_input("Please input : ")) 
sock.close()

三、go語言實現

服務端代碼:

復制代碼 代碼如下:

/*
     File      : svr.go
     Author    : Mike
     E-Mail    : Mike_Zhang@live.com
*/
package main

import(
    "net"
    "fmt"
    "bufio"
)

func main() {
    client,err := net.Listen("tcp","127.0.0.1:12345")
    if err != nil {
        fmt.Printf("Error : %s/n",err.String())
    }
    for {
        if c, err := client.Accept(); err == nil {
            defer c.Close()
            line, _ := bufio.NewReader(c).ReadString('/n')
            fmt.Println(line)
        }
    }
}


客戶端代碼:

復制代碼 代碼如下:

/*
     File      : cli.go
     Author    : Mike
     E-Mail    : Mike_Zhang@live.com
*/
package main

import(
    "net"
    "fmt"
)

func main() {
    conn, err := net.Dial("tcp", "127.0.0.1:12345")
    if err != nil {
        fmt.Printf("Error : %s/n",err.String())
    }
    conn.Write([]byte("Just a test"))    
}

運行效果(go語言為例):

好,就這些了,希望對你有幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产99久久精品一区二区 夜夜躁日日躁| 日韩av在线免费看| 亚洲精品美女久久久久| 国产精品偷伦免费视频观看的| 亚洲电影免费观看| 亚洲精品美女网站| 一区二区三区回区在观看免费视频| 亚洲最新av在线网站| 午夜精品久久久久久99热| 国产日韩在线亚洲字幕中文| 久久网福利资源网站| 91精品免费久久久久久久久| 国模精品一区二区三区色天香| 欧美高清电影在线看| 久久久国产精品视频| 色偷偷噜噜噜亚洲男人| 综合网日日天干夜夜久久| 激情成人在线视频| 日本乱人伦a精品| 欧美—级a级欧美特级ar全黄| 亚洲国产欧美一区二区丝袜黑人| 日韩最新中文字幕电影免费看| 国产精品成久久久久三级| 久久99精品久久久久久琪琪| 日韩av综合网| 午夜精品美女自拍福到在线| 国产精品第8页| 中文字幕在线日韩| 91豆花精品一区| 久久亚洲私人国产精品va| 91夜夜未满十八勿入爽爽影院| 色999日韩欧美国产| 国内精品久久久久久影视8| 欧美视频专区一二在线观看| 国产精品流白浆视频| 久久精品中文字幕免费mv| 欧美一级淫片aaaaaaa视频| 亚洲人精品午夜在线观看| 91精品国产高清久久久久久久久| 亚洲a级在线播放观看| 亚洲人成在线免费观看| 68精品国产免费久久久久久婷婷| 粗暴蹂躏中文一区二区三区| 亚洲欧洲在线观看| 国产97色在线| 8050国产精品久久久久久| 国产乱人伦真实精品视频| 欧美激情视频在线观看| 中文字幕精品在线| 久久精品免费播放| 成人在线中文字幕| 亚洲xxxxx| 国模视频一区二区| 奇米成人av国产一区二区三区| 久久久人成影片一区二区三区| 亚洲成人xxx| www.精品av.com| 国产精品久久视频| 国产欧美精品一区二区| 久久亚洲影音av资源网| 国产精品无av码在线观看| 久久国产精彩视频| 91精品视频观看| 国产亚洲一级高清| 91热福利电影| 国外成人性视频| 欧美在线视频导航| 国产精品视频1区| 97精品在线观看| 97精品欧美一区二区三区| 成人午夜黄色影院| 日韩美女激情视频| 日韩在线视频免费观看| 欧美中文字幕在线播放| 69影院欧美专区视频| 一区二区中文字幕| 久久久久久高潮国产精品视| 操91在线视频| 欧美电影免费观看| 日本sm极度另类视频| 国产99视频在线观看| 国产999在线| 国产精品ⅴa在线观看h| 欧美另类极品videosbest最新版本| 日本精品视频网站| 亚洲色图国产精品| 色综合久久天天综线观看| 国产精品黄色影片导航在线观看| 日本午夜精品理论片a级appf发布| 色综合久久精品亚洲国产| 日韩性生活视频| 日韩成人在线播放| 亚洲欧洲在线免费| 国产精品视频不卡| 国产精品久久久久7777婷婷| 成人免费淫片aa视频免费| 亚洲奶大毛多的老太婆| 国产精品国产三级国产专播精品人| 亚洲一二三在线| 日韩av中文字幕在线播放| 久久久噜噜噜久噜久久| 一本色道久久综合狠狠躁篇怎么玩| 91亚洲精品久久久久久久久久久久| 亚洲一区二区福利| 97国产suv精品一区二区62| 在线观看日韩专区| 黑人狂躁日本妞一区二区三区| 日韩av色综合| 国产精品午夜国产小视频| 亚洲va欧美va在线观看| 美女av一区二区三区| 欧美精品久久一区二区| 国产精品va在线播放我和闺蜜| 久久成人在线视频| 亚洲色图欧美制服丝袜另类第一页| 久久亚洲春色中文字幕| 国产精品男人爽免费视频1| 亚洲一区二区福利| 欧美激情一区二区三区久久久| 欧美肥婆姓交大片| 亚洲欧美日韩在线高清直播| 色在人av网站天堂精品| 日韩黄在线观看| 亚洲国产精品va| 欧美色视频日本高清在线观看| 亚洲视频第一页| 亚洲电影免费在线观看| 亚洲成人教育av| 欧美有码在线观看视频| 久久精品视频在线播放| 日韩成人av在线| 色综合久久天天综线观看| 久久夜色撩人精品| 国产一区二区黑人欧美xxxx| 国产精品一二区| 亚洲aⅴ男人的天堂在线观看| 日韩av影视综合网| 欧美片一区二区三区| 国产精品永久在线| 欧美午夜性色大片在线观看| 欧美伊久线香蕉线新在线| 亚洲国产成人久久综合| 欧美麻豆久久久久久中文| 国产成人精品久久亚洲高清不卡| 欧美最顶级的aⅴ艳星| 国产免费一区二区三区香蕉精| 欧美成人激情视频| 亚洲免费av电影| 欧美激情一区二区三区高清视频| 综合136福利视频在线| 国产在线拍揄自揄视频不卡99| 亚洲影影院av| 欧美激情欧美激情在线五月| 色婷婷亚洲mv天堂mv在影片| 亚洲精品影视在线观看| 亚洲欧美日韩在线高清直播| 最近的2019中文字幕免费一页| 国产综合在线看| 久久久久久久网站| 国产丝袜一区视频在线观看| 国产美女久久精品香蕉69| 97色在线观看| 亚洲欧洲免费视频| 欧美日韩国产精品一区二区三区四区|