您的位置:首页 > 编程语言

Socket编程(一)

2013-11-27 18:40 106 查看
Socket编程

一个简单的client,可以向sever发送GET命令,并得到sever返回的网页,这里以百度为例。

直接把代码拷过去运行就可以。并把sever返回的(HTML)文件保存到c盘

import java.io.*;

import java.net.*;

public class Client {

public static void main(String[] args) throws IOException {

Socket clientSocket = new Socket("www.baidu.com", 80);

BufferedReader readFromSocket = new BufferedReader(

new InputStreamReader(clientSocket.getInputStream()));

PrintWriter writeToSocket = new PrintWriter(

clientSocket.getOutputStream(), true);

// PrintWriter它可以将Java的基本数据类型等数据,直接转换为系统默认编码下对应的字符,再输出

//第二个参数主要是说字节流要刷新

//如果没有第二个参数true,下面加上 writeToSocket.flush();刷新

String str = "GET / HTTP/1.0\r\n";

//str是写给sever的GET命令

writeToSocket.println(str);

// writeToSocket.flush();

String readStr = readFromSocket.readLine();

//读出sever返回的第一行文件

File f = new File("C:/test.txt");

while (readStr != null) {

System.out.println(readStr);

writeToFile(readStr, f);

readStr = readFromSocket.readLine();

}

}

/**

*

* @param String

* str 把sever的响应写入文件

*/

public static void writeToFile(String str, File f) {

BufferedOutputStream bos = null;

OutputStreamWriter writer = null;

BufferedWriter bw = null;

try {

OutputStream os = new FileOutputStream(f);

bos = new BufferedOutputStream(os);

writer = new OutputStreamWriter(bos);

bw = new BufferedWriter(writer);

bw.write(str);

bw.flush();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

bw.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: