这是第二段:
import java.net.*;
import java.io.*;
public class ReverseClient {
    public static void main( String[ ] args ) {
       if ( args.length < 1 ) {
         System.err.println( "ReverseClient <IP address of server>" );
         return;
       }
       try {
          String s = "In the Quiet Morning";
          Socket sock = new Socket( args[ 0 ], 1234 );
          PrintWriter out = new PrintWriter( sock.getOutputStream() );
          out.println( s );
          out.flush();
          BufferedReader in = new BufferedReader( 
                new InputStreamReader( sock.getInputStream() ) );
          String t = in.readLine();
          if ( t != null ) 
            System.out.println( "To server:   " + s +  
                                "\nFrom server: " + t );
          sock.close();
       } catch( IOException e ) { System.err.println( e ); }
    }
}
要考试了,请各位高手帮帮忙,先谢了~~

解决方案 »

  1.   

    public class Reverse { 
       public static void main( String args[ ] ) {
          ServerSocket sSock = null;//服务器端套接字
          try {
             sSock = new ServerSocket( 1234 );//服务端口为1234
          } 
          catch( IOException e ) { 
             System.err.println( e ); //有错误输出异常信息并返回。
             return;
          }
          System.out.println( "Server running..." );//打印"Server running...."
          while ( true ) {//循环接收客户端请求
             try {
                Socket sock = sSock.accept();  //接收到客户端请求,建立服务套接字。
                BufferedReader in = new BufferedReader( 
                     new InputStreamReader( sock.getInputStream() ) );//获取输入流
                String t = in.readLine();//获取消息(从客户端);
                if ( t != null ) { // something read?如果有消息
                  PrintWriter ps = new PrintWriter(sock.getOutputStream());//建立输出流 
                  ps.println(new String(new StringBuffer(t).reverse()));//将消息字符串转置。
                  ps.flush();//刷新缓存
                }
                sock.close();//关闭套接字
             } catch( IOException e ) { System.err.println( e ); }//操作异常打印异常信息。
          }
       }
    }
      

  2.   


    public class Reverse { 
       public static void main( String args[ ] ) {
          ServerSocket sSock = null;
          try {
             sSock = new ServerSocket( 1234 );//生成一个服务器端的socket,端口号1234
          } 
          catch( IOException e ) { //异常返回
             System.err.println( e ); 
             return;
          }
          System.out.println( "Server running..." );
          while ( true ) {//循环接受数据
             try {
                Socket sock = sSock.accept();//生成一个服务器端用来于客户端交互的                                       //socket,前提是有客户端访问
                                             //
      
                BufferedReader in = new BufferedReader( //
                     new InputStreamReader( sock.getInputStream() ) );
                String t = in.readLine();
                if ( t != null ) { // something read?
                  PrintWriter ps = new PrintWriter(sock.getOutputStream()); 
                  ps.println(new String(new StringBuffer(t).reverse()));
                  ps.flush();
                }
                sock.close();
             } catch( IOException e ) { System.err.println( e ); }
          }
       }
    }
      

  3.   

    public class Reverse {              //你的类名
       public static void main( String args[ ] ) {        //主函数入口
          ServerSocket sSock = null;                      //定义一个服务器端的socket
          try {
             sSock = new ServerSocket( 1234 );            //将sSock在1234端口处实例化
          } 
          catch( IOException e ) {                        //异常处理
             System.err.println( e ); 
             return;
          }
          System.out.println( "Server running..." );             //输出Server running.... 
          while ( true ) {                                       //服务端一直执行,直到用户中断
             try {
                Socket sock = sSock.accept();                    //建立一个soket来接受服务器端收到的数据。
                BufferedReader in = new BufferedReader(          //建立一个bufferedReader对象,用来存放接收到的数据。
                     new InputStreamReader( sock.getInputStream() ) );
                String t = in.readLine();                        //一行一行的读取数据
                if ( t != null ) { // something read?            //如果用数据,就把数据显示出来。
                  PrintWriter ps = new PrintWriter(sock.getOutputStream()); 
                  ps.println(new String(new StringBuffer(t).reverse()));
                  ps.flush();
                }
                sock.close();                                     //关闭socket对象
             } catch( IOException e ) { System.err.println( e ); }//异常处理
          }
       }
    }
      

  4.   

    这是第二段:
    import java.net.*;
    import java.io.*;
    public class ReverseClient {//客户端类
        public static void main( String[ ] args ) {
           if ( args.length < 1 ) {//如果没有参数,打印使用说明,并返回。
             System.err.println( "ReverseClient <IP address of server>" );
             return;
           }
           try {
              String s = "In the Quiet Morning";//要发送的初始消息。
              Socket sock = new Socket( args[ 0 ], 1234 );//建立客户端套接字。
              PrintWriter out = new PrintWriter( sock.getOutputStream() );//建立输出流。
              out.println( s );//向服务器端发送消息
              out.flush();//刷新缓存
              BufferedReader in = new BufferedReader( 
                    new InputStreamReader( sock.getInputStream() ) );//建立输入流。
              String t = in.readLine();//读取服务器端消息。
              if ( t != null ) //如果消息不为空,打印发出的消息和接收到的消息。
                System.out.println( "To server:   " + s +  
                                    "\nFrom server: " + t );
              sock.close();//关闭套接字。
           } catch( IOException e ) { System.err.println( e ); }//操作异常,打印异常信息。
        }
    }
      

  5.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.Vector;
    class SieveErat {
       public static void main( String[ ] args ) {
          new SieveGui();
       }
    }
    class SieveGui extends JFrame implements Runnable {
       public SieveGui() {
          super( "Sieve of Eratosthenes" );
          init(); pack(); show();
       }
       public void run() {
          boolean[ ] multiple = new boolean[ n ];
          int i = 2;
          while ( i < n ) {  //*** determine which integers are primes
             boolean repeat = false;
             for ( int j = i + 1; j < n; j++ ) 
                if ( j % i == 0 ) {
                  multiple[ j ] = true; 
                  repeat = true;
                }
             if ( !repeat ) //*** any more numbers eliminated?
               break;       //*** if not, search for primes is finished
             while ( ++i < n && multiple[ i ] ) //*** else get next element
                ;
             pause();                           //*** sleep a bit...
          }     
          Vector v = new Vector();
          for ( i = 2; i < n; i++ ) { //*** add primes to an answer list
            if ( !multiple[ i ] )
              v.addElement( String.valueOf( i ) );
          }    
          addAnsList( v ); 
          threadRunning = false;
       }
       private void addAnsList( Vector v ) {
          JList l = new JList( v ); l.setFont( font );
          c.add( ansPane = new JScrollPane( l ) ); pack();
       }
       private void pause() { // pauses the sieve thread
          try { Thread.sleep( 2 ); } catch( InterruptedException e ) { }
       }
       private void init() {
          c = getContentPane();
          c.setFont( font = new Font( "Dialog", Font.BOLD, 12 ) );
          c.setLayout( new FlowLayout() );
          JButton start = new JButton( "Start" );
          start.addActionListener( new ActionListener() {
             public void actionPerformed( ActionEvent e ) {
                startSieve();
             } } );
          JButton exit = new JButton( "Exit" );
          exit.addActionListener( new ActionListener() {
             public void actionPerformed( ActionEvent e ) {
               System.exit( 0 );
             } } );
          Vector v = new Vector();
          int k = 100;
          for ( int i = 0; i < 6; i++ ) {
             v.addElement( String.valueOf( k ) );
             k *= 10;
          }
          numList = new JList( v );
          numList.setFont( font );
          c.add( exit ); c.add( start ); c.add( numList );
       }
       private void startSieve() {
          String s = (String) numList.getSelectedValue();
          if ( s == null || threadRunning )
            return;
          if ( ansPane != null ) {
            c.remove( ansPane ); pack();
          }
          n = Integer.parseInt( s );
          threadRunning = true;  
          new Thread( this ).start();
       }
       private Container c;
       Font font;
       private JList numList;
       private JScrollPane ansPane;
       private int n;    
       private boolean threadRunning;
    }
    这是第三段,谢谢
      

  6.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.Vector;
    class SieveErat {
       public static void main( String[ ] args ) {
          new SieveGui();//建立SieveGui对象,并开始程序运行。
       }
    }
    class SieveGui extends JFrame implements Runnable {//SieveGui类,扩展JFrame类,实现Runnable接口。
       public SieveGui() {//构造器
          super( "Sieve of Eratosthenes" );//调用父类构造器。
          init(); pack(); show();//依次调用方法,添加组件,显示窗体。
       }
       public void run() {//找出n以内的所有质数。
          boolean[ ] multiple = new boolean[ n ];//定义n个元素的布尔型数组。
          int i = 2;
          while ( i < n ) {  //循环条件判断
             boolean repeat = false;
             for ( int j = i + 1; j < n; j++ ) //从i+1循环到n
                if ( j % i == 0 ) {//如果j能被i整除。
                  multiple[ j ] = true; //将数组与j同下标的元素置true。
                  repeat = true;//置循环标记。
                }
             if ( !repeat ) //如果repeat标记为假,终止循环。
               break;       
             while ( ++i < n && multiple[ i ] ) //遍历到multiple元素不为真的第一个i值,开始下一次循环。
                ;
             pause();                           //线程休息2ms
          }     
          Vector v = new Vector();
          for ( i = 2; i < n; i++ ) { //将所以质数加入v集合。
            if ( !multiple[ i ] )
              v.addElement( String.valueOf( i ) );
          }    
          addAnsList( v ); //调用addAnsList方法,构造所以质数的显示列表及滚动条。
          threadRunning = false;//线程运行标记为false.。
       }
       private void addAnsList( Vector v ) {//构造所以质数的显示列表及滚动条
          JList l = new JList( v ); l.setFont( font );
          c.add( ansPane = new JScrollPane( l ) ); pack();
       }
       private void pause() { // 线程暂停
          try { Thread.sleep( 2 ); } catch( InterruptedException e ) { }
       }
       private void init() {
          c = getContentPane();//获取内容面板。
          c.setFont( font = new Font( "Dialog", Font.BOLD, 12 ) );//设置字体
          c.setLayout( new FlowLayout() );//设置布局。
          JButton start = new JButton( "Start" );//Start按钮。
          start.addActionListener( new ActionListener() {//为Start按钮添加ActionListener,点击该按钮调用startSieve()方法。
             public void actionPerformed( ActionEvent e ) {
                startSieve();
             } } );
          JButton exit = new JButton( "Exit" );//Exit按钮。
          exit.addActionListener( new ActionListener() {//为Exit按钮添加ActionListener,点击该按钮退出程序。
             public void actionPerformed( ActionEvent e ) {
               System.exit( 0 );
             } } );
          Vector v = new Vector();//建立集合V。
          int k = 100;
          for ( int i = 0; i < 6; i++ ) {//v中被添加6个元素,分别是:"100","1000","10000","100000","1000000","10000000",
             v.addElement( String.valueOf( k ) );
             k *= 10;
          }
          numList = new JList( v );//用集合v构造一个列表。
          numList.setFont( font );//设置列表的字体。
          c.add( exit ); c.add( start ); c.add( numList );//将以上组件添到窗体中。
       }
       private void startSieve() {
          String s = (String) numList.getSelectedValue();//获取列表框当前选择的值。
          if ( s == null || threadRunning )//如果列表框没有选择或线程已开始运行,返回。
            return;
          if ( ansPane != null ) {//如果ansPane滚动面板不为空,从窗体删除之,并重新布置窗体。
            c.remove( ansPane ); pack();
          }
          n = Integer.parseInt( s );//将得到的"100"等字符变换为整型,存入n。
          threadRunning = true;  //设置运行标记
          new Thread( this ).start();//开始运行线程,调用run()方法。
       }
       private Container c;
       Font font;
       private JList numList;
       private JScrollPane ansPane;
       private int n;    
       private boolean threadRunning;
    }
      

  7.   

    最后一段了:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;class MaceGUI extends JFrame implements ActionListener {
       public MaceGUI() {
          super( "Midwest Association for Charisma Enhancement" );
          pane = getContentPane();
          buttons = new JPanel( new FlowLayout() );
          misc = new JPanel( new FlowLayout() );
          stList = new JPanel();
          married = new JRadioButton( "Married", false );
          email = new JTextField( promptE );
          name = new JTextField( promptN );
          reasons = new JTextArea( promptR );
          list = new JList( states ); //** Midwest state names
          init();  
          setVisible( true );
       }
       public void actionPerformed( ActionEvent e ) {
          String cmd = e.getActionCommand();
          if ( cmd.equals( submit ) )
            submitForm();
          else if ( cmd.equals( clear ) )
            clearForm();
          else if ( cmd.equals( exit ) )
            System.exit( 0 );
       }
       private void submitForm() {
          String t = (list.getSelectedValue() == null) ? "none" : 
                      list.getSelectedValue().toString();
          post( name.getText(), email.getText(), t,
                (married.isSelected()) ? "married" : "not maried", 
                reasons.getText() );                    
       }
       private void clearForm() {
          reasons.setText( promptR );
          name.setText( promptN );
          email.setText( promptE );
          married.setSelected( false );
          list.getSelectionModel().clearSelection();
       }
       //*** For now, a stub function that prints to the standard error.
       private void post( String n, String e, String s, 
                          String m, String r ) {
          System.err.println( n + " " + e + " " + s + "\n" + m + "\n" + r );
       }
       private void init() {
          JLabel j;
          Font f = null;
          pane.setLayout( new BorderLayout() );
          buttons.setBackground( Color.gray );
          email.setFont( f = new Font( "Dialog", Font.BOLD, 12 ) );
          name.setFont( f );
          reasons.setFont( f );
          reasons.setLineWrap( true );
          misc.add( name ); misc.add( email ); misc.add( married );
          list.setFont( f );
          list.setBackground( Color.cyan );
          list.getSelectionModel().setSelectionMode( 
             ListSelectionModel.SINGLE_SELECTION );
          stList.setLayout( new BoxLayout( stList, BoxLayout.Y_AXIS ) );
          stList.add( j = new JLabel( "Home state  " ) );
          j.setFont( f );
          j.setForeground( Color.black );
          stList.add( list );
          addButton( submit ); addButton( clear ); addButton( exit );
          pane.add( buttons, BorderLayout.NORTH );
          pane.add( reasons, BorderLayout.CENTER );
          pane.add( stList, BorderLayout.WEST );
          pane.add( misc, BorderLayout.SOUTH );
          pack();
       }
       private void addButton( String name ) {
          JButton b = new JButton( name );
          b.setFont( new Font( "Dialog", Font.BOLD, 14 ) );
          b.addActionListener( this ); 
          buttons.add( b );                   
       }
       //*** instance fields
       private Container pane;
       private JPanel buttons, misc, stList;
       private JList list;
       private JRadioButton married;
       private JTextField email, name;
       private JTextArea reasons;
       //*** class fileds
       private final static String submit = "  Submit  ";
       private final static String clear = "  Clear  ";
       private final static String exit = "  Exit  ";
       private final static String promptN = 
            "First and last name            ";
       private final static String promptE = 
            "E-mail address                 ";
       private final static String promptR = 
            "   My charisma needs enhancement because";
       private final static String[ ] states = 
            { "Illinois", "Indiana", "Iowa", "Kansas", "Minnesota", 
              "Michigan", "Missouri", "Nebraska", "Ohio", "Wisconsin" };
    }
      

  8.   

    那个通信的程序没有指定Server的IP怎么能联上去?请高手指点一下。