✎
编程开发网
首页
C语言
C++
面试
Linux
函数
Windows
数据库
下载
搜索
当前位置:
首页
->
AI编程基础
->
JAVA
一个改良过的适合初学者看的java socket通信程序
2014-11-24 09:12:37
·
作者:
·
浏览:
1
标签:
一个
改良
适合
学者
java
socket
通信
程序
下面这个程序是描述如何模仿
浏览器
向服务器发送请求并在控制台输出服务器的返回信息,这是我看过别人的之后自己用最简单的方法写的,很适合初学者
阅读
的java socket程序。也有一个缺点,就是当与真正的服务器相连,由于速度实在太慢,根本看不到结果。闲话不多说,网上这方面的程序很多,其实都是差不多的。
package smallTest; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; public class ClientDemo { /** * @param args */ public static void main(String[] args) { try{ Socket s=new Socket("127.0.0.1",80); InputStream ins = s.getInputStream(); OutputStream out= s.getOutputStream(); PrintWriter pw =new PrintWriter(out,true); StringBuffer sb = new StringBuffer(); sb.append("GET /test.htm HTTP/1.1\r\n"); sb.append("Accept: */*\r\n"); sb.append("Accept-Language: zh-cn\r\n"); sb.append("Host: localhost:80\r\n"); sb.append("Connection: Keep-Alive\r\n"); //注,这是关键的关键,这里一定要一个回车换行,表示消息头完,不然服务器会等待 sb.append("\r\n"); pw.println(sb.toString()); pw.flush();String temp;int contentLength=200; BufferedReader br1= new BufferedReader(new InputStreamReader(ins)); for(int i=0;i<6;i++) do{ temp=br1.readLine(); System.out.println(temp); if(temp.startsWith("Content-Length")){ contentLength = Integer.parseInt(temp.split(":")[1].trim()); } }while(br1.readLine()=="\r\n"); for(int i=0;i