关闭一个tcp连接后,重新连接成功但是不能发送信息

mwiker 2013-07-02 01:05:55
int connectServer(char *ip,int port)
{
int ser_sockfd;
int sockid;



if ((ser_sockfd = socket (AF_INET, SOCK_STREAM, 0) ) < 0)
{
printf("Error!TCP Socket Function Error!\n");
return -1;
}
printf("Successed! Socket Clinet!\n");

bzero(&ser_addr, sizeof(ser_addr));
ser_addr.sin_family = AF_INET;
ser_addr.sin_addr.s_addr = inet_addr(ip);
ser_addr.sin_port = htons(port);

if(connect( ser_sockfd, (struct sockaddr *)&ser_addr, (socklen_t )sizeof(ser_addr)) < 0 )
{
printf("Error!Connect Functions Error!\n");
return -2;
}
return ser_sockfd;
}


这是连接到服务端的代码,在服务端断开一次连接后,客户端检测到掉线,用close()关闭后,客户端重新去连接服务端 ,连接上了 但是不能发送和接收信息,这是什么原因?
...全文
345 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ellen_Tang 2013-07-03
  • 打赏
  • 举报
回复
你不会是还用那个已经断开的socket去连吧?
AnYidan 2013-07-02
  • 打赏
  • 举报
回复
google "SO_REUSEADDR"
binouyang 2013-07-02
  • 打赏
  • 举报
回复
是不是服务端还在TIME_WAIT状态?
mwiker 2013-07-02
  • 打赏
  • 举报
回复
引用 1 楼 wangbylove 的回复:
换个端口试试呢,或关闭之前使用的端口呢
服务端的端口必然是要固定,再说换个端口连接也就失去了程序本身的意义了啊
wangbylove 2013-07-02
  • 打赏
  • 举报
回复
换个端口试试呢,或关闭之前使用的端口呢

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧