Linux TCP连接建立和连接重置EconReset

Linux TCP连接建立和连接重置EconReset,linux,sockets,tcp,Linux,Sockets,Tcp,我正在尝试使用在两个套接字之间建立TCP连接 SINT32 ret = connect ( sd, (struct sockaddr *)&server_ip, sizeof (server_ip ) ); 我总是得到ret=0和errno=0,这意味着连接已经建立。然后,我尝试使用 if ( ret == 0 ) { if ( setsockopt ( sd, IPPROTO_TCP, TCP_NODELAY, &val, sizeof(SINT32)) <

我正在尝试使用在两个套接字之间建立TCP连接

SINT32 ret = connect ( sd, (struct sockaddr *)&server_ip, sizeof (server_ip ) );
我总是得到ret=0和errno=0,这意味着连接已经建立。然后,我尝试使用

if  ( ret == 0 )
{
    if ( setsockopt ( sd, IPPROTO_TCP, TCP_NODELAY, &val, sizeof(SINT32)) < 0)
     printf ( " Unable to set socket option:%d \n",errno);

}
if(ret==0)
{
if(setsockopt(sd,IPPROTO_TCP,TCP_NODELAY,&val,sizeof(SINT32))<0)
printf(“无法设置套接字选项:%d\n”,错误号);
}
我总是看到这个printf语句带有
errno=104 ECONNRESET


有没有可能connect()在不建立连接的情况下仍然可以返回空值?

我看不出您如何可靠地了解使用该代码的
ECONNRESET
。您需要调用
perror()
或使用
errno
strerror()
结果生成
printf()
,才能看到这一点。我忘了在帖子中添加errno。我还从返回的errno的GDB中勾选了check,它是errno 104。您是在阻塞模式下执行此操作的吗?