knSocketTCP_receiveN
This commit is contained in:
parent
0e370b31ba
commit
da504dfcf5
@ -100,3 +100,15 @@ Maybe knSocketTCP_receive(knSocketTCP* socket, char* buffer, u32 bufferLength){
|
|||||||
|
|
||||||
return SUCCESS(UniUInt64(receivedCount));
|
return SUCCESS(UniUInt64(receivedCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Maybe knSocketTCP_receiveN(knSocketTCP* socket, char* buf, u32 bufsize, u32 n){
|
||||||
|
if(bufsize < n)
|
||||||
|
safethrow(ERR_UNEXPECTEDVAL, ;);
|
||||||
|
|
||||||
|
u32 receivedTotal = 0;
|
||||||
|
while(receivedTotal < n) {
|
||||||
|
try(knSocketTCP_receive(socket, buf+receivedTotal, n-receivedTotal), m_receivedCount, ;);
|
||||||
|
receivedTotal += m_receivedCount.value.UInt64;
|
||||||
|
}
|
||||||
|
return MaybeNull;
|
||||||
|
}
|
||||||
|
|||||||
@ -51,6 +51,10 @@ Maybe knSocketTCP_send(knSocketTCP* socket, char* buffer, u32 dataLength);
|
|||||||
///@return Maybe<u64> received bytes amount
|
///@return Maybe<u64> received bytes amount
|
||||||
Maybe knSocketTCP_receive(knSocketTCP* socket, char* buffer, u32 bufferLength);
|
Maybe knSocketTCP_receive(knSocketTCP* socket, char* buffer, u32 bufferLength);
|
||||||
|
|
||||||
|
/// receives a package of size n
|
||||||
|
///@return Maybe<void>
|
||||||
|
Maybe knSocketTCP_receiveN(knSocketTCP* socket, char* buf, u32 bufsize, u32 n);
|
||||||
|
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
Loading…
Reference in New Issue
Block a user