1、socket服务端
package com.socket.project; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class Service { public static void main(String[] args) { Socket socket=null; InputStream is=null; InputStreamReader isread=null; BufferedReader red=null; try { //1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口 ServerSocket server=new ServerSocket(8089); System.out.println("服务器启动监听。。。。。。"); //监听端口 while(true){ socket=server.accept(); //获取输入流 is=socket.getInputStream(); isread=new InputStreamReader(is); //创建缓冲区 red=new BufferedReader(isread); String data=null; while((data=red.readLine())!=null){ System.out.println("客户端上传的数据是:"+data); } } } catch (IOException e) { e.printStackTrace(); }finally{ if(red!=null) try { red.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(isread!=null) try { isread.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(is!=null) try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }2、客户端
package com.socket.project; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class SocketClient { //socket 客户端 public static void main(String[] args) { OutputStream out=null; PrintWriter writer=null; try { //创建客户端socket 传递的 地址 端口 Socket sock=new Socket("localhost", 8089); out=sock.getOutputStream();//字节流 writer=new PrintWriter(out);//将字节流转换打印流 writer.print("我想告诉你,我一直在这里等着你"); writer.flush(); //关闭socket输出流 sock.shutdownOutput(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ //关闭流 if(writer!=null)writer.close(); if(out!=null) try { out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
package com.socket.thread; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class SocketClient { //socket 客户端 public static void main(String[] args) { OutputStream out=null; PrintWriter writer=null; InputStream input=null; InputStreamReader read=null; BufferedReader red=null; Socket sock=null; try { //创建客户端socket 传递的 地址 端口 sock=new Socket("localhost", 8089); out=sock.getOutputStream();//字节流 writer=new PrintWriter(out);//将字节流转换打印流 writer.print("我想告诉你,我一直在这里等着你"); writer.flush(); //关闭socket输出流 sock.shutdownOutput(); //获取服务端返回的信息 input =sock.getInputStream();//获取输入流 read=new InputStreamReader(input); red=new BufferedReader(read); String data=""; while((data=red.readLine())!=null){ System.out.println("服务端回复你:"+data); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ //关闭流 if(writer!=null)writer.close(); if(out!=null) try { out.close(); } catch (IOException e) { e.printStackTrace(); } if(red!=null) try { red.close(); } catch (IOException e) { e.printStackTrace(); } if(read!=null) try { read.close(); } catch (IOException e) { e.printStackTrace(); } if(input!=null) try { input.close(); } catch (IOException e) { e.printStackTrace(); } if(sock!=null) try { sock.close(); } catch (IOException e) { e.printStackTrace(); } } } }
package com.socket.thread; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Service { public static void main(String[] args) { //1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口 try { ServerSocket serverSocket=new ServerSocket(8089); Socket socket=null; while(true){//一直监听 socket=serverSocket.accept(); //启动一个服务 SocketServiceThread thread=new SocketServiceThread(socket); thread.start(); } } catch (IOException e) { e.printStackTrace(); } } }
package com.socket.thread; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; public class SocketServiceThread extends Thread { private Socket socket=null; public SocketServiceThread(Socket socket){ this.socket=socket; } //执行线程操作 @Override public void run() { InputStream input=null; InputStreamReader red=null; BufferedReader br=null; OutputStream out=null; PrintWriter writer=null; try { //获取输入流 input=socket.getInputStream(); red=new InputStreamReader(input); //缓冲字符 br=new BufferedReader(red); String data=""; while((data=br.readLine())!=null){ System.out.println("客户端来信说:"+data); } //关闭写入流 socket.shutdownInput(); //获取输出流 out=socket.getOutputStream();// 获取输出字节流 writer=new PrintWriter(out);//将字节转换打印流 writer.write("欢迎光临!!"); writer.flush(); } catch (IOException e) { e.printStackTrace(); }finally{ if(br!=null) try { br.close(); } catch (IOException e) { e.printStackTrace(); } if(red!=null) try { red.close(); } catch (IOException e) { e.printStackTrace(); } if(input!=null) try { input.close(); } catch (IOException e) { e.printStackTrace(); } if(writer!=null)writer.close(); if(out!=null) try { out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
原文地址:http://blog.csdn.net/itlqi/article/details/44994625