我有一个TCP连接.服务器只是从客户端读取数据.现在,如果连接丢失,客户端在将数据写入管道(断开的管道)时将收到错误,但服务器仍会侦听该管道.如果连接是UP还是NOT,我能找到任何方法吗?
我知道你会把它掩盖为重复(问题1,问题2,问题3),但答案不是我正在寻找的(我认为也是其他人).
所以,我指的是socket master(我爱你们):如果我关闭套接字怎么能得到绑定错误(地址已经在使用中)?
我会描述我的问题.
我有一个与服务器 通信的客户端
在服务器中,我有两个套接字:sockS(主套接字,监听)和sockTX(客户端一个)
如果我调用我的程序一次,通信没问题,那么我关闭两个套接字
如果我记得服务器和客户端,我得到错误,我要等待TIME_WAIT(在Ubuntu 32bit上约3分钟)
为什么,在关闭两个套接字之后我仍然会遇到绑定错误?
 
有一种方法可以使它无任何魔法(SO_REUSEADDR)吗?
我知道我的代码中有些错误... 
谢谢大家.
 
那是代码:
客户端
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <string.h>
#include <netdb.h>
#include <unistd.h>
#include <arpa/inet.h>
#define PORT 5000
#define SERVER "127.0.0.1"
#define MAXLINE 128
int printMessage(char* str);
int main(){
char buff[MAXLINE+1];
struct sockaddr_in server, client;
struct hostent *host;
int sock, n;
//socklen_t len;
    if((sock = socket(AF_INET,SOCK_STREAM,0)) == …