对于Socket通信简述,服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容。Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容。
    
例1:客户端的简略写法(一)。

Socket client = null;
try{
    client = new Socket(Ip,Port);
    String msg="发送的数据内容!";
    //得到socket读写流,向服务端程序发送数据  
    client.getOutputStream().write(msg.getBytes());
    byte[] datas = new byte[2048];
    //从服务端程序接收数据
    client.getInputStream().read(datas);
    System.out.println(new String(datas));
}catch(Exception e){
    e.printStackTrace();
}finally {
    if (client != null) {
        try {
                client.close();
             } catch (IOException e) {
                 System.out.println("systemerr:" +e);
             }
       }
}

例2:客户端简略写法(二)。

try{
    client = new Socket();
    SocketAddress socketAddress = new InetSocketAddress(Ip,Port);
    client.connect(socketAddress, 3000);
    String msg="访问的服务器返回内容!";
    //得到socket读写流,向服务端程序发送数据  
    client.getOutputStream().write(msg.getBytes());
    byte[] datas = new byte[2048];
    //从服务端程序接收数据
    client.getInputStream().read(datas);
    System.out.println(new String(datas));
}catch(Exception e){
    e.printStackTrace();
}finally {
     if (client != null) {
        try {
              client.close();
        } catch (IOException e) {
            System.out.println("systemerr:" +e);
        }
    }
}

例3:客户端的完整写法。

try {  
	//1.建立客户端socket连接,指定服务器位置及端口  
	Socket socket =new Socket(Ip,Port);  
	//2.得到socket读写流  
	OutputStream os=socket.getOutputStream();  
	PrintWriter pw=new PrintWriter(os);  
	//输入流  
	InputStream is=socket.getInputStream();  
	BufferedReader br=new BufferedReader(new InputStreamReader(is));  
	//3.利用流按照一定的操作,对socket进行读写操作  
	String sendInfo="向服务器发送的数据信息!";
	
	pw.write(sendInfo);  
	pw.flush();  
	socket.shutdownOutput();  
	//接收服务器的相应  
	String replyInfo=null;  
	while(!((replyInfo=br.readLine())==null)){  
		System.out.println("接收服务器的数据信息:"+replyInfo);  
	}  
	//4.关闭资源  
	br.close();  
	is.close();  
	pw.close();  
	os.close();  
	socket.close();  

} catch (UnknownHostException e) {  
	e.printStackTrace();  
} catch (IOException e) {  
	e.printStackTrace();  
}