一、所谓socket一般也称做"套接字",用于描述IP地址和端口,是一个通讯链的句柄。应用程序一般经过"套接字"向网络发出请求或者应答网络请求。 java
操做java socket时用到的最多的三个方法为: 服务器
accept():主要用于服务器端产生“阻塞”,等待客户端的连接请求,而且返回一个客户端的Socket实例; 网络
getInputStream():方法主要用来得到网络链接输入,同时返回一个InputStream对象实例; socket
getOutputStream():方法和上面的getInputStream相反。 .net
二、通常要创建Java的Socket链接,应首先明确服务器端和客户端,服务器端使用ServerSocket监听指定的端口,使用accept 等待客户端请求,连接连接,开始会话、完成会话后,关闭连接。(注意,通常socket的关闭都应该是服务器端来进行的,后面说);客户端使用 Socket对网络中的某个服务器的某个端口发出连接请求,链接成功,开始会话,会话完成,Socket关闭。 code
二、示例代码: server
服务器端:
对象
package com.icer.server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * Server * * @author Icer * */ public class Server { private ServerSocket ss; private Socket s; private BufferedReader br; private PrintWriter pw; public Server() { try { ss = new ServerSocket(10000); System.out.println("Server is starting..."); s = ss.accept(); br = new BufferedReader(new InputStreamReader(s.getInputStream())); pw = new PrintWriter(s.getOutputStream(),true); String line = br.readLine(); System.out.println(line); pw.println("your word is:" + line); //pw.println("helloworld"); br.close(); pw.close(); } catch (IOException ie) { ie.printStackTrace(); } } public static void main(String[] args) throws Exception { new Server(); } }
客户端: get
package com.icer.client; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; /** * Client * @author Icer * */ public class Client { private Socket s; private BufferedReader br; //private BufferedReader line; private PrintWriter pw; private String line = ""; public Client() { try{ s = new Socket("127.0.0.1",10000); pw = new PrintWriter(s.getOutputStream(),true); br = new BufferedReader(new InputStreamReader(s.getInputStream())); pw.println("hello"); line = br.readLine(); System.out.println(line); br.close(); pw.close(); }catch(IOException ie){ ie.printStackTrace(); } } public static void main(String[] args) throws Exception { new Client(); } }