send(connectedsocket,caBuffer,sizeof(saSbuf),0);

->   send(connectedsocket,caBuffer, msg.ByteSize(),0);

On 10月1日, 上午5时22分, EJ <j.gra...@gmail.com> wrote:
> I'm using the winsock api to send and receive protocol messages
> between a client program and a server program. One program sends out a
> periodic status message received by the second program, while the
> second program sends a command message and then receives whatever was
> sent to it. The problem isn't with the sending and receiving process,
> but with decoding the protocol buffer message. When the command
> message is sent, it appears to send and encode correctly, but when the
> message is received by the other program, it's supposed to print out
> the message contents, but just prints garbage. I'll put code similar
> to mine here so that it makes more sense. I had to change the names
> though, so hopefully it still makes sense.
> This is a snippet so you can see the general idea:
>
> Sending program:
> MyMessageNamespace::MyMessage msg;
> char caBuffer[64];
> MyMessageNamespace::MyMessage::commandmsg * cmd=
> msg.mutable_command();
> cmd->set_command("exit");
> int length = msg.ByteSize();
> if (msg.SerializeToArray(caSbuf,sizeof(caSbuf)))
> {
>     send(connectedsocket,caBuffer,sizeof(saSbuf),0);
>
> }
>
> Receiving program:
> MyMessageNamespace::MyMessage msg;
> //other things, some of which involve system event code having to do
> with socket messages.
> //...
> //finished with other things
> if (WaitForSingleObject(Mymessageinfo->hmutex, 500) == WAIT_OBJECT_0)
> {
>     msg.ParseFromArray(Mymessageinfo->mutexmessage, Mymessageinfo->msglength)
>
>     //other things happen here
>     printf("%s",msg.cmd().command().c_str());
>
> }
>
> Any ideas or does this not even make any sense? In case you're
> wondering, yes we are basically using two different protocols here,
> which I'm sure isn't helping the problem.
> In any case, when I throw in code breaks, it looks like the problem
> occurs when receiving program tries to decode the message. It could be
> the message itself, but I think it has to do with the fact that I'm
> new to protocol buffers and don't entirely understand all the things I
> could be doing wrong here. But any help would be much appreciated!

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to