c++ - connect() breaks the socket when the connection is refused -
I was fighting an error in my program where I got the signal The way I decide it looks strange to me, and I do not understand why this works. Here is the fixed code: In addition, this error occurs when Solaris is compiled or works either when compiled on Ubuntu. Does someone help me understand why you should restart the socket if The basic principle is that you can not reconnect a TCP socket once you accept it Or connect, even with the failure, you have to turn it off and create a new connection for the new connection. SIGPIPE when I tried To
send () after
connect () . The error occurred only when
connect () was detected at least once "Connection refused". Here's the old buggy code:
getaddrinfo ("127.0.0.1", "1443", and hint, and res); s = socket (res-> gt; ai_family, res-> ai_socktype, res-> ai_protocol); While (Connect (S, RAC-> AI_ADDR, RAC-> AI_ADDRRL)> == -1) {printf ("Error: Connection refused"); Sleep (2); } sprintf (msg, "test"); msg_len = strlen (msg); Send (s, msg, msg_len, 0);
int connect_works = -1; Whereas (connect_work == -1) {getaddrinfo ("127.0.0.1", "1443", and hint, and;); S = socket (res-> gt; ai_family, res-> ai_socktype, res-> ai_protocol); Connect_work = connect (s, rac-> AI_ADDR, RAC-> AIIDDLLA); If (connect_work == -1) {printf ("error: connection denied"); Sleep (2); }} Sprintf (msg, "test"); msg_len = strlen (msg); Send (s, msg, msg_len, 0); To clarify, either the snippet works, if the first time the code is called
connect that it withdraws the success, only the second The snippet works if
connect () has failed one or more times.
connect () fails?
Comments
Post a Comment