1.包含客户端和服务器两部分程序,并且两个程序能分开独立运行。
2.客户端可以输入服务器地址和端口,连接服务器。
3..服务器能接受客户端连接,并向客户端输出发送的字符串。

代码如下:
服务器端:

package com.dr.Demo01;

import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerSocket01 {

 public static void main(String[] args) {
  ServerSocket server=null;
  try{
   //服务器在9999端口开辟了服务
   server=new ServerSocket(9999);
  }catch(Exception e){}
  //对于服务器而言,所有用户的请求都是通过SeverSocket实现
  Socket client=null;
  try{
   //服务器在此等待用户的链接
   System.out.println("等待客户端链接、、、");
   client=server.accept();//服务端接收到一个client
  }catch(Exception e){}
  //要向客户端打印信息
  PrintStream out=null;
  //得到向客户端输出信息的能力
  try{
   out=new PrintStream(client.getOutputStream());
  }catch(Exception e){}
  out.println("Hi,how do you do?");
  try{
   client.close();
   server.close();
  }catch(Exception e){}
  System.out.println("客户端回应完毕、、、");
 }

}


客户端:

package com.dr.Demo01;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;

public class ClientSocket01 {

 public static void main(String[] args) {
 
  Socket client=null;
  try{
   //实际上表示要链接到服务器上去了
   client=new Socket("192.168.1.23",9999);
  }catch(Exception e){}
  //等待服务器端的回应
  String str=null;
  //如果直接使用InputStream接受会比较麻烦
  //最好的方法是可以把内容放入发哦缓冲流之中进行读取
  BufferedReader buf=null;
  
  try{
   buf=new BufferedReader(new InputStreamReader(client.getInputStream()));
      str=buf.readLine();
  }catch(Exception e){}
  System.out.println(str);
 }

}