import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.*;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.util.Scanner;
public class TestSocket_Client {
public static void main(String[] args) throws Exception {
String server = "www.sina.com.cn";
int serverPort = 80;
int nRetryCnt=3;
Socket s = new Socket(server, serverPort);
StringBuilder bld=new StringBuilder();
bld.append("GET / HTTP/1.1");
bld.append("\r\n");
bld.append("Accept: text/html, */*\r\n");
bld.append("\r\n");
bld.append("Accept-Language: zh-CN");
bld.append("\r\n");
bld.append("User-Agent: Mozilla/5.0");
bld.append("\r\n");
bld.append("Accept-Encoding: deflate");
bld.append("\r\n");
bld.append("Host: www.sina.com.cn");
bld.append("\r\n");
bld.append("Connection: Keep-Alive");
bld.append("\r\n");
bld.append("\r\n");
bld.append("\r\n");
String data = bld.toString();
while(nRetryCnt-->0) {
printf("%d/3: Connecting to server '%s':'%d'\n", 3 - nRetryCnt, server, serverPort);
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
out.write(data.getBytes());
byte[] buffer = new byte[1024*1024*10];
File fTemp = File.createTempFile("temp", ".txt");
printf("Temp file %s created\n", fTemp.getAbsolutePath());
int nReads = in.read(buffer);
while(nReads>0) {
FileOutputStream fs = new FileOutputStream(fTemp,true);
fs.write(buffer, 0, nReads);
fs.flush();
fs.close();
nReads = in.read(buffer);
}
printf("%d bytes read from server\n", fTemp.length());
/*
if (fTemp.length()>0) {
//Files.readAllLines(fTemp, Charset.defaultCharset());
Scanner sc=new Scanner(fTemp);
while(sc.hasNextLine()) {
println(sc.nextLine());
}
sc.close();
}*/
}
s.close();
}//main()
private static void printf(String format, Object... args) {
if (args == null || args.length == 0) {
System.out.print(format);
} else {
System.out.printf(format, args);
}
}
private static void println(String msg) {
System.out.println(msg);
}
}