java 板


LINE

※ 引述《james732 (好人超)》之铭言: : 如果我有一个新执行绪,里面有个无穷回圈执行 serverSocket.accept() : private class ListenThread extends Thread { : ServerSocket serverSocket; : public ListenThread(ServerSocket s) { : serverSocket = s; : } : @Override : public void run() { : try { : while (true) { : Socket s = serverSocket.accept(); : new JobThread(s).start(); : } : } catch (IOException e) { : } : } : } : public static void Main(String[] s) { : Thread t = new ListenThread(new ServerSocket(5566)); : t.start(); : // 做一些其他的工作 : // 我想在这里结束执行绪 t, 并且关闭 ServerSocket : // 继续做一些其他的工作 : } : 我想问的是,当这个执行绪在 accept() 等待 client 的连线时 : 要怎麽样能够结束这个执行绪,同时关闭这个 ServerSocket 呢? : 另外分享一件蠢事... : 我最近把程式写成这样 : new Thread() { : @Override : public void run() { : // 一些耗时的工作 : } : }.run(); : 然後很疑惑为什麽我会一直收到ANR(Android is Not Responding) : 还在想说Android的thread是不是哪里不一样... : 之前比较习惯写这样 : class MyThread extends Thread { ... } : main() { : MyThread t = new Thread(); : t.start(); // 这个时候明明不会写错.... : } : 练习(偷懒)用了一下 Anonymous inner class 就耍笨了... : 觉得 override run() 之後接着执行 run() 是一件很顺手的事 orz 当ServerSocket在Accept的时候 你是无法直接关掉这个Thread的 因为他block住了 但你可以先连线後再关掉这个Thread e.g ....略 while (true) { Socket s = serverSocket.accept(); if ( !isShutdown ) { new JobThread(s).start(); } else { s.close(); break; // break while loop } } public void ShutDownServer() { isShutdown = true; // 打开一个socket连ServerSocket // 让while loop往下移动 new Socket( serverSocket.getInetAddress(),serverSocket.getLocalPort() ); //....做其他reference clean up的动作 } 其实做法跟我之前的推文类似 只是多去做一个socket连线而已 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 180.176.8.219
1F:→ james732:原来如此,我还真没想到丢一个连线给它 XDDD 07/20 14:42
2F:→ james732:另外我有想到另一个解法 http://pastie.org/2241341 07/20 14:45
3F:→ dou0228:ServerSocket.setSoTimeout() ... 07/20 16:56
4F:推 po500922:其实有个办法可以在外部将socket close掉 08/22 20:59







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP