1개 데이터만 보낼 때
WSABUF wsaBuf;
wsaBuf.buf = (char*)_sendEvent.buffer.data();
wsaBuf.len = (ULONG)_sendEvent.buffer.size();
DWORD numOfBytes = 0;
WSASend(_socket, &wsaBuf, 1, OUT & numOfBytes, 0, &_sendEvent, nullptr);
여러 데이터를 보낼 때
// Scatter-Gather => 흩어져 있는 데이터들을 모아서 한방에 보낸다.
Vector<WSABUF> wsaBufs;
wsaBufs.reserve(_sendEvent.sendBuffers.size());
for (SendBufferRef sendBuffer : _sendEvent.sendBuffers)
{
WSABUF wsaBuf;
wsaBuf.buf = reinterpret_cast<char*>(sendBuffer->Buffer());
wsaBuf.len = static_cast<LONG>(sendBuffer->WriteSize());
wsaBufs.push_back(wsaBuf);
}
DWORD numOfBytes = 0;
WSASend(_socket, wsaBufs.data(), static_cast<DWORD>(wsaBufs.size()), OUT & numOfBytes, 0, &_sendEvent, nullptr);
'Server > C++' 카테고리의 다른 글
패킷 직렬화 (Packet Serialization) - 데이터의 사용 (0) | 2024.08.20 |
---|---|
문자집합과 인코딩 (0) | 2024.08.19 |
WSARecv에서 순환버퍼의 사용 (0) | 2024.08.16 |
class 자신을 참조하는 shared_ptr (0) | 2024.08.13 |
IOCP Completion Port 모델 (0) | 2024.08.13 |