int Server_UDP::send(ByteStream& stream) { socklen_t slen = sizeof(clientAddr); ssize_t sent = sendto(clientSock, stream.getBufHead(), stream.getBufSize(), 0, (const sockaddr*)&clientAddr, slen); if (sent < 0) { perror("Sending unsuccessful"); return 1; } return 0; }
int Client_TCP::send(ByteStream& stream) { // Add message size to head of stream int status = 0; ByteStream send; send.write(stream.getWriteIndex()); // msg size send = send + stream; // actual msg size_t tosend = stream.getWriteIndex() + sizeof(int); // bytes needed to be sent // Start sending char* head = send.getBufHead(); while (tosend > 0) { ssize_t bytes = ::send(sockfd, head, tosend, 0); if (bytes <= 0) { // send() was not successful perror("Sending unsuccessful"); return 1; } tosend -= (size_t) bytes; head += bytes; } return 0; }