我现在有一个socket连接,现在我想停掉他,然后用另一个IP开启socket,求方法
那个,程序运行,只允许有一个socket,然后我这个做的是修改IP之后路,我应该怎么做呢?
断开代码:
if (socket != null && !socket.isClosed())
{
// 先停止在关闭,否则数据丢失
socket.shutdownInput();
socket.shutdownOutput();
socket.close();
}
连接代码:
/** 进行网络的连接,在线程中进行的网络的建立 */
private void SocketConnected(final String address, final int duankou)
{
new Thread(new Runnable()
{
public void run()
{
socket = new Socket();
DetactionFlag = true;
try
{
socket.connect(new InetSocketAddress(address, duankou), 5000);
// Socket socket = new Socket(ip,port); 用这种方式的话会出现卡机现象
// socket.setTimeout(timeout);
out = socket.getOutputStream();
in = socket.getInputStream();
bff = new BufferedReader(new InputStreamReader(in)); // 接受数据的对象
// 开启数据读取
if (rcvThread == null || !rcvThread.isAlive())
{
rcvThread = new ReceiveThread();
rcvThread.start();
}
// 开启断线重连
if (dtctThread == null || !dtctThread.isAlive())
{
dtctThread = new DetactionThread();
dtctThread.start();
}
}
catch (IOException e)
{
e.printStackTrace();
}
if (dtctThread == null || !dtctThread.isAlive())
{
// 开启断线重连
dtctThread = new DetactionThread();
dtctThread.start();
}
}
}).start();
}
个人建议做一个socket连接池
那个,程序运行,只允许有一个socket,然后我这个做的是修改IP之后路,我应该怎么做呢?