一个Scocket实例程序
作者: 文章来源:
发布日期:2006年06月11日
import java.io.*; import java.net.*;
public class EchoServer1 { public static void main(String[] args ) { try { ServerSocket s = new ServerSocket(8500); Socket incoming = s.accept( ); BufferedReader in = new BufferedReader (new InputStreamReader(incoming.getInputStream())); PrintWriter out = new PrintWriter (incoming.getOutputStream(), true /* autoFlush */);
out.println( "Hello! Enter BYE to exit." );
boolean done = false; while (!done) { String line = in.readLine(); if (line == null) done = true; else { out.println("Echo: " + line);
if (line.trim().equals("BYE")) done = true; } } incoming.close(); } catch (Exception e) { System.out.println(e); } } }
// EchoClient1.java import java.io.*; import java.net.*;
public class EchoClient1 { public static void main(String args[]) { try{ if (args.length != 1){ System.out.println("USAGE: java Client servername"); return; } String connectto= args[0]; Socket connection; // connect to server if(connectto.equals("localhost")){ connection=new Socket(InetAddress.getLocalHost(),8500); } else{ connection=new Socket(InetAddress.getByName(connectto),8500); } BufferedReader input=new BufferedReader(new InputStreamReader(connection.getInputStream())); PrintWriter out = new PrintWriter(connection.getOutputStream(), true /* autoFlush */); // read information from server String info; info = input.readLine(); System.out.println(info); boolean done = false; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String sInput; while(!done){ sInput = in.readLine(); out.println(sInput); if (sInput.equalsIgnoreCase("bye")) done = true; info = input.readLine(); System.out.println(info); } connection.close(); } catch(SecurityException e){ System.out.println("SecurityException when connecting Server!"); } catch(IOException e){ System.out.println("IOException when connecting Server!"); } } }
|
运行
1 运行服务器
java EchoServer1
2 运行 客户端
java EchoClient1 server_hostname