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;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.