Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void write_string_size(ENetPacket * packet, string & str)
- {
- auto data = (char*)packet->data + packet->dataLength;
- using u16 = unsigned short;
- auto p = (u16*)data;
- *p = (u16)str.size();
- packet->dataLength += sizeof(u16);
- }
- void write_string_content(ENetPacket * packet, string & str)
- {
- auto data = (char*)packet->data + packet->dataLength;
- memcpy(data, &str[0], str.size());
- packet->dataLength += str.size();
- }
- void write_string(ENetPacket * packet, string & str)
- {
- write_string_size(packet, str);
- write_string_content(packet, str);
- }
- void example(ENetPeer * peer, vector<string> & some_strings)
- {
- auto packet = enet_packet_create(nullptr, 512, ENET_PACKET_FLAG_RELIABLE);
- packet->dataLength = 0;
- //We assume the total size of all strings won't be > 512
- for(auto & str : some_strings)
- {
- write_string(packet, str);
- }
- enet_peer_send(peer, 0, packet);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement