客户端: 1.连接服务器Socket 2.发送消息 服务端: 1.建立服务的端口 ServerSocket 2.等待用户的连接 accept() 3.接受用户的消息
客户端
import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; //客户端 public class TestClientDemo01 { public static void main(String[] args) { Socket socket=null; OutputStream outputStream=null; //我要知道服务器的地址,端口号 try { InetAddress serverIP=InetAddress.getByName("127.0.0.1"); int Port=9999; //创建一个scoket连接 socket = new Socket(serverIP,Port); //发送消息 使用IO流 outputStream = socket.getOutputStream(); outputStream.write("你好,欢迎学习java".getBytes()); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if (outputStream!=null){ try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (socket!=null){ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }服务端
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; //服务端 public class TestServerDemo01 { public static void main(String[] args) { ServerSocket serverSocket=null; Socket socket=null; InputStream inputStream=null; ByteArrayOutputStream boas=null; try { //我得有一个地址 serverSocket = new ServerSocket(9999); //等待客户链接过来 socket=serverSocket.accept(); //读取客户端的消息 inputStream = socket.getInputStream(); //管道流 boas = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len; while ((len=inputStream.read(buffer))!=-1){ boas.write(buffer,0,len); } System.out.println(boas.toString()); } catch (IOException e) { e.printStackTrace(); } if (boas!=null){ try { boas.close(); } catch (IOException e) { e.printStackTrace(); } } if (inputStream!=null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (socket!=null){ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } if (serverSocket!=null){ try { serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } }