Sending uchar* over winsock2?

Try this: err = send( ConnectSocket, (char*)buf, (int)strlen(sendbuf), 0 ).

These values cannot be signed. – Bluebaron Dec 8 '11 at 16:34 @Bluebaron Why should it? It just casts the pointer, which gets ultimately cast to void* and therefore hasn't any notion of signedness anyway.

The cast doesn't just alter the data it points to and the send function doesn't care about any type, it just copies raw memory. – Christian Rau Dec 8 '11 at 16:40.

Since send wants a const char* and not just a char*, you cannot just pass a plain void*, as C++ doesn't support implicit casting to/from void*. So you have to explicitly convert it to char* or const char*: err = send( ConnectSocket, (const char*)buf, (int)strlen(sendbuf), 0 ); Keep in mind that casting the pointer doesn't magically change the signedness of the data in your buffer, because send doesn't care about any signedness and just copies raw data. But as to why it worked with VS2008 I don't know, because C++ doesn't cast to/from void* implicitly by standard.

Maybe send was defined differently (I doubt that) or the rules were just laxed (non-standard-conformant). Or maybe you compiled it as C, which in turn casts to/from void* implicitly, by standard.

Same compile issue. But I understand your points. – Bluebaron Dec 8 '11 at 16:51 @Bluebaron Ok, I updated it.

I was confused by you writing a wrapper for the native send and then using the native send instead of your wrapper. I just thought your second line used your wrapper function. – Christian Rau Dec 8 '11 at 17:07.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions