Does anyone know of any way to write to a socket and block until the data has been read at the other end?
Apparently, the socket has some sort of receiving/sending buffer (SO_RCVBUF/SO_SNDBUF options), I was thinking maybe we can change the value to block write(). So I tried setting the buffer size to 1 byte, and for some reason it doesn’t work: setsockopt() returned correctly, but write() function was not blocked anyway. I also tried buffer size 16 and 64 byte, they didn’t work either.
Any idea?
Thanks.
//*************** Code ***************************
int size = 1;
if (setsockopt(fda[0], SOL_SOCKET, SO_RCVBUF, &size, sizeof(int)) < 0){
cout << “something is wrong” << endl;
}
if (setsockopt(fda[1], SOL_SOCKET, SO_SNDBUF, &size, sizeof(int)) < 0){
cout << "something is wrong" << endl;
}