zoukankan      html  css  js  c++  java
  • C++ ProtoBuf小结

    Server:
    #include "stdafx.h"
    #include <stdio.h>
    #include <Winsock2.h>
    #include <windows.h>
    #include <string>
    
    #include "msg.pb.h"
    
    #pragma comment(lib,"ws2_32.lib")
    #pragma commen (lib,"libprotobuf.lib")
    
    using namespace std;
    int _tmain(int argc, _TCHAR* argv[])
    {
        WORD wVersionRequested;
        WSADATA wsaData;
        int err;
    
        wVersionRequested = MAKEWORD(1,1);
        err = WSAStartup(wVersionRequested,&wsaData);
        if ( err != 0)
            return 0;
        
        if ( LOBYTE( wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)
        {
            WSACleanup();
            return 0;
        }
        
        SOCKET sockSrv = socket(AF_INET,SOCK_STREAM,0);
    
        SOCKADDR_IN addrSrv;
        addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
        addrSrv.sin_family = AF_INET;
        addrSrv.sin_port = htons(8000);
    
        bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
        printf("Bind OK...
    ");
    
        listen(sockSrv,5);
        printf("Listen OK ...
    ");
    
        SOCKADDR_IN addrClient;
        int len = sizeof(SOCKADDR);
    
        while(1)
        {
            SOCKET sockConn = accept(sockSrv,(SOCKADDR*)&addrClient,&len);
            printf("Receive data...
    ");
            
            char recvBuf[500];
            memset(recvBuf,0,500);       
            recv(sockConn, recvBuf, 500, 0);
      
            test::Vo_CharacterInfo Info;
            Info.ParseFromString(string(recvBuf);
    
            closesocket(sockConn);
            printf("Close Socket...
    ");
        }
    
        system("pause");
        return 0;
    }
    Client:
     
    // Client.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "msg.pb.h"
    #include <stdio.h>
    #include <windows.h>
    #include <fstream>
    #include <string>
    
    #pragma comment(lib,"ws2_32.lib")
    #pragma comment(lib,"libprotobuf.lib")
    
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        WORD wVersionRequested;
        WSADATA wsaData;
        int err;
        wVersionRequested = MAKEWORD(1,1);
    
        err = WSAStartup( wVersionRequested, &wsaData);
        if ( err != 0)
        {
            return 0;
        }
        if ( LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion != 1))
        {
            WSACleanup();
            return 0;
        }
    
        SOCKET sockClient = socket(AF_INET,SOCK_STREAM,0);
    
        SOCKADDR_IN addrSrv;
        addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
        addrSrv.sin_family = AF_INET;
        addrSrv.sin_port = htons(8000);
        
        connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
        printf("Connect Successful...
    ");
    
          test::Vo_CharacterInfo Info;
          Info.set_charid(123);
          Info.set_charname("name");
    
        std::string info;
        Info.SerializeToString(&info);
    
    
        send(sockClient, info.data(), info.size(),0);
        printf("Send Successful...
    ");
       
    
        closesocket(sockClient);
        WSACleanup();
    
        system("pause");
        return 0;
    }

  • 相关阅读:
    700. Search in a Binary Search Tree
    100. Same Tree
    543. Diameter of Binary Tree
    257. Binary Tree Paths
    572. Subtree of Another Tree
    226. Invert Binary Tree
    104. Maximum Depth of Binary Tree
    1、解决sublime打开文档,出现中文乱码问题
    移植seetafaceengine-master、opencv到ARM板
    ubuntu16.04-交叉编译-SeetaFaceEngine-master
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318363.html
Copyright © 2011-2022 走看看