Linux C socket 断开重连

1. socket Server 创建完成后,设置socket类型为可重复性使用;

2. 在server接受client的连接之后,client和server之间可以互相收发数据;

        conn = accept();

3. server可以主动断开连接并继续进入可连接状态:

        可以在server端断开连接,但是不能关闭socket, 使用close(conn),而不是close(socket);

        客户端也可主动断开连接,可以关闭并重新创建socket, 并再次尝试连接server.


Linux 中,可以使用 socket 编程来实现断线重连的功能。下面是一个简单的示例代码,展示了如何使用 socket 进行断线重连: ```c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <arpa/inet.h> #include <string.h> int main() { int sockfd; struct sockaddr_in server_addr; // 创建 socket if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("socket creation failed"); exit(EXIT_FAILURE); } // 设置 server 地址 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(8080); if (inet_pton(AF_INET, "127.0.0.1", &(server_addr.sin_addr)) <= 0) { perror("invalid address"); exit(EXIT_FAILURE); } // 连接到 server while (connect(sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) { perror("connection failed"); // 等待一段时间后进行重连 sleep(1); } printf("Connected to the server.\n"); // ... 在连接建立后的代码逻辑 ... close(sockfd); return 0; } ``` 在上述代码中,首先创建了一个 socket,并设置了 server 的地址。然后在一个循环中,尝试连接到 server。如果连接失败,会通过 `perror()` 输出错误信息,并在 `sleep(1)` 后进行重连。直到连接成功后,可以进行后续的通信操作。最后,关闭 socket 连接。 请注意,上述示例仅为演示如何处理断线重连的基本思路,实际应用中可能需要根据具体需求进行适当的修改和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值