1. 程式人生 > >JAVA程式碼 通過Socket讀取返回的資料

JAVA程式碼 通過Socket讀取返回的資料

                 
  1. package net.java2000.net;
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.net.InetAddress;
  6. import java.net.Socket;
  7. /**
  8.  * 通過Socket讀取返回的資料。
  9.  * 
  10.  * @author 趙學慶,Java世紀網(java2000.net)
  11.  * 
  12.  */
  13. publicclass SocketGet {
  14. publicstaticvoid main(String[] args) {
  15. try {
  16. // 建立連線
  17.       InetAddress addr = InetAddress.getByName(
    "smtp.163.com");
  18. int port = 25;
  19.       Socket socket = new Socket(addr, port);
  20. // 如果超過這個時間沒有新的資料,則不再繼續等待資料
  21.       socket.setSoTimeout(1000);
  22. // 建立讀取資料的Reader,裡面指定了需要的編碼型別。
  23.       BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream(),
  24. "UTF-8"));
  25. // 讀取每一行的資料.注意大部分埠操作都需要互動資料。
  26.       String str;
  27. while ((str = rd.readLine()) != null) {
  28.         System.out.println(str);
  29.       }
  30.       rd.close();
  31.     } catch (IOException e) {
  32.       e.printStackTrace();
  33.     }
  34.   }
  35. }
執行結果
  1. 220163.com Anti-spam GT for Coremail System (163com[071018])
  2. java.net.SocketTimeoutException: Read timed out
  3.     at java.net.SocketInputStream.socketRead0(Native Method)
  4.     at java.net.SocketInputStream.read(Unknown Source)
  5.     at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
  6.     at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
  7.     at sun.nio.cs.StreamDecoder.read(Unknown Source)
  8.     at java.io.InputStreamReader.read(Unknown Source)
  9.     at java.io.BufferedReader.fill(Unknown Source)
  10.     at java.io.BufferedReader.readLine(Unknown Source)
  11.     at java.io.BufferedReader.readLine(Unknown Source)
  12.     at net.java2000.net.SocketGet.main(SocketGet.java:31)
原文:http://www.java2000.net/p9148更多程式碼,請訪問:http://code.java2000.net <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>