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();
}
}
}
}
一个简单的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();
}
}
}
}
相关文章推荐
- Java网络编程精解之ServerSocket用法详解二1
- socket编程基础/memset()
- JAVA Socket 编程的两个问题,readline(),判断Socket连接断掉
- Socket原理与编程基础
- socket编程原理(六)
- linux下socket编程实现一个服务器连接多个客户端
- SOCKET编程,C/S双方连接状态检测
- 基于Socket和多线程编程的聊天程序实现
- 面试必备之:MFC socket编程(浅出+深度:服务端和客户端端口问题)
- Linux下Socket编程
- linux socket网络编程二 基于tcp
- Android深入浅出系列之Socket—Socket编程(一)
- Socket编程 (连接,发送消息) (Tcp、Udp) ,这个是同步,跟上一篇差不多
- SOCKET编程总结
- Java网络编程精解笔记3:ServerSocket详解
- Socket编程+Google Protocol搭建简单的客户端服务器方式1
- Linux下socket编程之TCP简单实现
- 揭开Socket编程的面纱
- 网络编程知识(2)--Socket理解
- C++使用socket套接字的通信编程实现