Ubuntu下使用protobuf和socket实现服务器间消息传输

一、定义protobuf数据结构Test.proto

package Test.protobuf ;//包名:在生成对应的C++文件时,将被替换为名称空间,在代码中会有体现
option optimize_for = SPEED ;//文件级别的选项,Protobuf优化级别
//心跳信息数据结构
message HeartInfo
{
   
    required int32 curtime = 1;
    required string hostip = 2 ; 
};

二、编写protobuf和socket进行双向通信代码

客户端client.cpp代码:

#include 
#include 
#include 
//for protobuf
#include "Test.pb.h" 
//for socket
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;
using namespace Test::protobuf ;

const int BUFFSIZE = 128;
int main()
{
   
    //建立socket
    int socketfd ;
    struct sockaddr_in seraddr ;
    string hostip = "127.0.0.1";
    //链接,尝试3次
    for(int i = 0 ; i < 3;++i)
    {
   
        if((socketfd = socket(AF_INET,SOCK_STREAM,0)) > 0)
        {
   
            cout<<"create socket success..."<<endl;
            break;
        }
        sleep(2);
    }
    //地址置空
    bzero( &seraddr, sizeof(seraddr)

你可能感兴趣的:(其他,socket,linux,protobuf)