- package net.java2000.net;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.InetAddress;
- import java.net.Socket;
- /**
- * 通过Socket读取返回的数据。
- *
- * @author 赵学庆,Java世纪网(java2000.net)
- *
- */
- public class SocketGet {
- public static void main(String[] args) {
- try {
- // 创建连接
- InetAddress addr = InetAddress.getByName("smtp.163.com");
- int port = 25;
- Socket socket = new Socket(addr, port);
- // 如果超过这个时间没有新的数据,则不再继续等待数据
- socket.setSoTimeout(1000);
- // 创建读取数据的Reader,里面指定了需要的编码类型。
- BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream(),
- "UTF-8"));
- // 读取每一行的数据.注意大部分端口操作都需要交互数据。
- String str;
- while ((str = rd.readLine()) != null) {
- System.out.println(str);
- }
- rd.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
运行结果
- 220 163.com Anti-spam GT for Coremail System (163com[071018])
- java.net.SocketTimeoutException: Read timed out
- at java.net.SocketInputStream.socketRead0(Native Method)
- at java.net.SocketInputStream.read(Unknown Source)
- at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
- at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
- at sun.nio.cs.StreamDecoder.read(Unknown Source)
- at java.io.InputStreamReader.read(Unknown Source)
- at java.io.BufferedReader.fill(Unknown Source)
- at java.io.BufferedReader.readLine(Unknown Source)
- at java.io.BufferedReader.readLine(Unknown Source)
- at net.java2000.net.SocketGet.main(SocketGet.java:31)
原文: http://www.java2000.net/p9148
更多代码,请访问: http://code.java2000.net
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>