I am new to socket programming, I am trying to send some packets to server using the send()
function in C++, but I am always getting a 'Broken pipe' error while sending packets to the server. Could you please help me for the below points?
send()
function returns the "Broken pipe" errors?send()
function?Note: I am using named socket to communicate between client and server.
- When
send()
returns the "Broken pipe" errors
When you have written to a connection that has already been closed by the peer.
- What are the causes for "Broken pipe" errors in socket programming
Writing to a connection that has already been closed by the peer.
- What will be the solution for "Broken pipe" error from send() function.
Don't write to a connection that has already been closed by the peer.
It usually indicates that you have committed a prior application protocol error, so the peer didn't understand you and gave up.
I had the same problem and figured you can put in MSG_NOSIGNAL as the flag paramether insted of 0 to prefent the send function from throwing a signal if the socket is closed. insted it will return a -1 to show you that sending was not successfull.
int rc = send(sockFD, "data", 4, MSG_NOSIGNAL);
if (rc == -1) cout << "socket send failed" << endl;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With