A. java socket 重连问题
while ((length = in.read(b)) > 0) {
两边都按行处理,发送端按行发、接收端按行接收并处理,这样会好很多。
} catch (Exception e) {
另外回,异常有可能是对方引起,如对答方服务停止,,,,这样程序中就成了列循环了。
B. java数据库自动重连
连接数据库的话不是有个返回值么,如果返回记录的话rs.next!=null
如果没有返回记录rs.next==null
然后你就内用rs.next判断
if(rs.next==null)
{
//此处写方容法等待五秒重新连接调用这个类
}
else
{
//接受数据库穿出来的值
}
上面如果不行
就写个try catch语句:
try
{
//连接数据库
}
catch(...)
{
//如果有异常,说明数据库还没有启动
//等待五秒重新连接调用这个类
}
C. elasticsearch中,如何与java中TransportClient在断开后自动重连
不建议使用TransportClient,因为es官方自己都放弃了。建议使用java自身的http客户端,使用rest api进行操作即可。不存在断开重连,只存在api失败重试。
D. java中怎么处理连接复位呀
记录最后一次成功获取数据的时间,如果距离当前时间超过了最大允许的时间间隔,人工断开连接,然后再重连
E. java通过ssh连接linux怎么设置超时
以下均针简让李对redhat6.5系统进行说明。
一、设置ssh超时断连
使用root用户,编辑/etc/profile文件,在
HOSTNAME='/bin/hostname'
HISTIZE=30
后增加一行
TMOUT=300
其中,300表示超过300秒无操作即断开连接。
设置好之后拦迟,所有新建的连接超过5分钟没有操作即断开(当前连接需要断开重连才会生效)。
二、如果滑如已设置了超时断连,如何配置以尽量保持连接:
修改server端的/etc/ssh/sshd_config文件:
ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接
ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应。
F. java socket如果服务端掉线 客户端应该怎样重连,实现的思路是怎么样的,最好能有具体的代码参考一下
看代码,不明白的追问
// 无穷循环,用于自动重新连接网关
while (true) {
// 捕获sleep异常
try {
// 捕获socket异常
try {
// 创建socket连接
socketGateway = new Socket("127.0.0.1", 8888);
// 创建输入输出对象
inStream = new DataInputStream(socketGateway.getInputStream());
outStream = new DataOutputStream(socketGateway.getOutputStream());
byte buf[] = new byte[1]; // 数据缓冲区
int intLen; // 读缓冲区返回的长度
// 无穷循环,用于读缓冲区数据
while (true) {
// 捕获读缓冲区异常
try {
intLen = inStream.read(buf, 0, 1);
// 可读长度-1则断开连接
if (intLen == -1) {
break;
}
// 处理buf
}
// 连接断开
catch (EOFException e) {
break;
}
// 接收数据超时
catch (SocketTimeoutException e) {
break;
}
// 超过数据包末尾
catch (IOException e) {
break;
}
}
} catch (Exception e) {
// 处理socket错误
}
// 休眠1秒后重连
sleep(1000);
} catch (Exception e) {
// 处理sleep错误
}
}
G. java socket客户端上传文件过程中断线,客户端重连,并且服务端继续接收数据
思路,一边发数据,一边写数据到文件里保存下来,下次重连的时候就读取文件,继续写