Получение segfault из-за строковой переменной типа данных на сервере PROTOBUF и связи клиента через сокеты на конце recv в cpp
Когда я отправляю переменную protobuf через соединение через сокет на recv end, я пытаюсь отобразить строковую переменную protobuf. Я получил сегментацию в этом оставшемся типе данных, кроме String, они работают нормально, но в случае строковой переменной я получил сегментацию Как я могу прийти в Protobuf ошибка сегментации типа данных строки, отличная от любого другого типа данных для хранения типа данных строки.
Я создаю example.proto с именем переменной строки, там я компилирую example.proto с компилятором protoc (protoc example.proto --cpp_out
) он создает два файла два файла example.pb.h, example.pb.cc Используя эти файлы, я создаю test_server.cpp и test_client.cpp и компилирую его. но во время выполнения обеих программ я отправил переменную protobuf на стороне recv, это дает ошибку сегментации из-за попытки отобразить строковую переменную.
Как я могу решить эту проблему?
example.proto
package data;
message star
{ optional string name=1; }
server.cpp
#include
#include
#include
#include
#include
#include
#include
#include"example.pb.h"
#include"example.pb.cc"
int main()
{
int sd,csd;
sd=socket(AF_INET, SOCK_STREAM,0);
perror("socket");
sockaddr_in ser,cli;
ser.sin_family=AF_INET;
ser.sin_port=htons(7878);
ser.sin_addr.s_addr=inet_addr("X.Y.Z.A");
bzero(ser.sin_zero, 8);
size_t s=16;
if(bind(sd,(struct sockaddr *)&ser, s)==-1)
cout