Java的Socket编程

来源:互联网 发布:网络通的 无法共享文件 编辑:程序博客网 时间:2024/05/19 00:14

Java中通过Socket实现客户端与服务器端的通信,大概步骤如下:

1)服务端创建ServerSocket,绑定服务器地址及端口并开始监听;
2)客户端建立socket连接,创建Socket对象,该Socket对象通过GetInputStream从主机读取信息,通过OutputStream向主机发送请求
3)服务端收到客户端的请求后,通过ServerSocket的accept方法创建Socket对象,该Socket对象通过GetInputStream读取客户端请求,通过OutputStream向客户端发送信息

 

下面是《JAVA 实例(Java Examples in a Nutsbell)》一书中的例子

服务器端:

 

 

客户端:

 

 

运行:

java -cp [编译后class文件的路径,比如 D:/demo/output/classes] demo.socket.HttpMirror [端口号,比如9394]

 

在另外一个cmd命令行窗口运行

java -cp [编译后class文件的路径] demo.socket.HttpMirror [服务器路径,比如 http://localhost:9394/test.html]

 

则会显示:

 

HTTP/1.0 200

Content-Type: text/plain

 

GET /test.html

 

 

 

比如我机器上安装了apache服务器,打开http://localhost时会显示It works!的页面,运行下面命令时,

java -cp D:/demo/output/classes demo.socket.HttpClient http://localhost d:/works.html

则会得到该页面的信息,并写到D盘的works.html文件中

 

如果你的机器可以联网,你正在登陆新浪微博,也可以试下运行:

java -cp D:/demo/output/classes demo.socket.HttpClient http://t.sina.com.cn

 

则你会得到:

OK, Iamalive

 

 

 

当然,实际应用中可能还涉及到多线程、并发等方面的知识,这里就不多说了。(其实我也没怎么去了解,汗。。。)

 

 

 

 

 

 

 

 

 


原创粉丝点击