- 论坛徽章:
- 0
|
想在客户端写一个reconnect,当服务器没启动时,能延长数秒,再连,但是出现了标题这个错误。
我的代码如下:
- //reconnect的定义
- int reconnect(int * sock_fd,const struct sockaddr *addr,socklen_t len)
- {
- close(*sock_fd);
- if (( *sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- {
- perror("socket");
- return -1;
- }
- printf(" in reconnect sockfd is %d",*sock_fd);
- if (connect(*sock_fd, (struct sockaddr *)&addr, len) == -1)
- {
- perror ("reconnect failed");
- return -1;
- }
- else
- return 1;
- }
- //reconnect 的使用,sockfd是int
- if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == -1)
- {
- perror("connect error ,now reconnected");
- sleep(6);
- if (reconnect(&sockfd,sizeof(struct sockaddr),sizeof(struct sockaddr)) == -1)
- {
- exit(1);
- }
- }
复制代码 |
|