服务端
import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; public class SocketServer { public static void main(String[] args) throws IOException { int port=8999; int backlog=2; ServerSocket serverSocket=new ServerSocket(port,backlog); Socket socket=null; try { socket=serverSocket.accept(); System.out.println("socket 连接: "+socket.getRemoteSocketAddress().toString()); while (true){ byte[] buf=new byte[1024]; int len=socket.getInputStream().read(buf); System.out.println(new String(buf,0,len)); } }catch (SocketException e){ System.out.println("客户端断开连接."); }finally { System.out.println("socket 关闭: "+socket.getRemoteSocketAddress().toString()); socket.close(); } } }
客户端
import java.io.*; import java.net.InetSocketAddress; import java.net.Socket; public class SocketClient { public static void main(String[] args) throws IOException { Socket socket=new Socket(); socket.connect(new InetSocketAddress(8999)); OutputStream out=socket.getOutputStream(); String s; BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); while ((s=reader.readLine())!=null&&s.length()!=0){ System.out.println(s); out.write(s.getBytes()); out.flush(); } } }
这个服务端一次只能处理一个客户端,可以使用telnet localhost 8999测试