[問題] 要怎麼掃描某個網段是否有server存在?

看板java作者 (歐歐耶)時間12年前 (2011/07/21 14:43), 編輯推噓0(0013)
留言13則, 2人參與, 最新討論串1/1
如題 小弟目前的構想是這樣 用TCP連線 client端能自動掃描某一段IP 像是192.168.0.0 ~ 192.168.0.100這樣 本來是想用迴圈包thread寫比較快 但是似乎會死在Ioexception裡面... 請問各位大大有什麼方法可以處理這樣的問題.... 謝謝!! ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.56.198

07/21 15:01, , 1F
用socket.connect();連連看?
07/21 15:01, 1F

07/21 15:22, , 2F
樓上 我用了原本的都無法連QQ 怎麼會這樣
07/21 15:22, 2F

07/21 15:26, , 3F
阿..可以了我忘記new Socket(); 我再試試看 謝囉!!
07/21 15:26, 3F
用了一樓的方式好像可以!!! 但是很怪 我家AP 給的IP是192.168.0.100 FOR LOOP 從100起跳 就有連到SERVER 但是從99或更前面開始 就連不到了... 有沒有大大知道原因阿 感激不盡!! int serverPort = 5050; for (int tail = 99; tail <= 101; tail++) { SocketAddress address = new InetSocketAddress("192.168.0."+String.valueOf(tail), serverPort); System.out.println( "ip : 192.168.0."+String.valueOf(tail)); // TextView01.append("ip : "+ipHead+tail+ "\n"); try{ clientsocket.connect(address) ; Log.i("QQ", "done : "+tail ); } catch(IOException e){ Log.i("QQ", "fail " ); } } ※ 編輯: ohohyeah 來自: 118.165.56.198 (07/21 16:38)

07/21 16:46, , 4F
如果99沒有server,自然會連不到吧?
07/21 16:46, 4F

07/21 16:56, , 5F
對 可是迴圈跑到100的時候依然連不到...
07/21 16:56, 5F

07/21 16:58, , 6F
你的 clientsocket 有重新 new 嗎?
07/21 16:58, 6F

07/21 17:02, , 7F
clientsocket= new Socket(); 這行加在for最下面的
07/21 17:02, 7F

07/21 17:03, , 8F
話還是不行耶.... 他跑的速度變慢了
07/21 17:03, 8F
※ 編輯: ohohyeah 來自: 118.165.56.198 (07/21 17:04)

07/21 17:05, , 9F
阿!!!可以了!! 我腦殘放錯位置 謝謝您!!!
07/21 17:05, 9F

07/21 17:07, , 10F
想請問這是什麼原因造成的
07/21 17:07, 10F

07/21 17:55, , 11F
這個樣子實在是跑好慢啊 一個要一秒左右..有沒有更快的
07/21 17:55, 11F

07/21 18:33, , 12F
那你就開多執行緒,一個執行緒測試一個IP吧
07/21 18:33, 12F

07/22 01:35, , 13F
可以了 謝謝您!!!
07/22 01:35, 13F
文章代碼(AID): #1E9yg3Ye (java)