我现在有一个socket连接,现在我想停掉他,然后用另一个IP开启socket,求方法
那个,程序运行,只允许有一个socket,然后我这个做的是修改IP之后路,我应该怎么做呢?
socket连接问题,关闭原来的,建另一个IP的socket
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 叽哩叽哩鸡 2016-08-25 08:56关注
断开代码:
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(); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 maple软件,用solve求反函数出现rootof,怎么办?
- ¥50 汇编语言除法溢出问题
- ¥65 C++实现删除N个数据列表共有的元素
- ¥15 Visual Studio问题
- ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
- ¥20 求一个html代码,有偿
- ¥100 关于使用MATLAB中copularnd函数的问题
- ¥20 在虚拟机的pycharm上
- ¥15 jupyterthemes 设置完毕后没有效果
- ¥15 matlab图像高斯低通滤波