Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Golang TCP error wsarecv

Tags:

tcp

go

I am writing an app which listens tcp connection (see this example) . When a tcp connection disconnected I got error read tcp ip_server.:port1->ip_client:port2: wsarecv: An existing connection was forcibly closed by the remote host. I expected error EOF and timeout(for conn.SetReadDeadline()) and tried to catch error with this code:

if err != nil {     
    log.Println("getting error from listener")
    // I thought, listener can continue work another cases
    if neterr, ok := err.(net.Error); ok && neterr.Timeout() || err == io.EOF {
        log.Println("Closing connection...")
        break // connection will be closed 
    }
}

Anyone knows about this error? Do you know how to catch this error and when this error will occured ? Thanks in advance !

like image 932
Ulug'bek Avatar asked Mar 15 '23 21:03

Ulug'bek


1 Answers

The usual cause of this error is that you sent data over a connection which had already been closed by the peer. In other words, an application protocol error.

like image 66
user207421 Avatar answered Mar 24 '23 22:03

user207421