服务器端:
package as; import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io. * ; import java.net.ServerSocket; import java.net.Socket; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class CharServerText extends JFrame implements ActionListener{ JLabel jl = new JLabel( " 输入您要说的话 " ); JPanel jp = new JPanel(); JTextField jtf = new JTextField( 15 ); JTextArea jta = new JTextArea( 10 , 10 ); ServerSocket ss; Socket sk; BufferedReader br; PrintWriter pw; public CharServerText() { super ( " Server 端 " ); Container con = getContentPane(); jp.add(jl); jp.add(jtf); con.add(jp,BorderLayout.SOUTH); con.add(jta,BorderLayout.CENTER); jtf.addActionListener( this ); addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit( 0 ); } } ); setSize( 300 , 250 ); show(); try { ss = new ServerSocket( 9010 ); sk = ss.accept(); System.out.println( " 1111 " ); jta.append( " 已连接到客户机 " + sk.getInetAddress().getHostName() + " " ); br = new BufferedReader( new InputStreamReader(sk.getInputStream())); pw = new PrintWriter(sk.getOutputStream(), true ); while ( true ) { String ii = br.readLine(); if (ii != null ){ System.out.println( " 1 " ); jta.append( " Client说: " + ii + " " ); } } } catch (Exception e) { e.printStackTrace(); } finally { try { ss.close(); sk.close(); br.close(); pw.close(); } catch (IOException e) { e.printStackTrace(); } } } public void actionPerformed(ActionEvent arg0) { try { String str = jtf.getText(); jtf.setText( "" ); pw.println(str); pw.flush(); jta.append( " Server说: " + str + " " ); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { new CharServerText(); }}客户端:
package as; import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io. * ; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class CharClientText extends JFrame implements ActionListener{ JLabel jl = new JLabel( " 输入您要说的话 " ); JPanel jp = new JPanel(); JTextField jtf = new JTextField( 15 ); JTextArea jta = new JTextArea( 10 , 10 ); Socket sk = null ; BufferedReader br; BufferedWriter bof; PrintWriter pw; public CharClientText() { super ( " Client 端 " ); Container con = getContentPane(); jp.add(jl); jp.add(jtf); con.add(jp,BorderLayout.SOUTH); con.add(jta,BorderLayout.CENTER); jtf.addActionListener( this ); addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit( 0 ); } } ); setSize( 300 , 250 ); show(); try { Socket sk = new Socket( " 127.0.0.1 " , 9010 ); jta.append( " 已连接到服务器 " + sk.getInetAddress().getHostName() + " " ); InputStream in = sk.getInputStream(); br = new BufferedReader( new InputStreamReader(in)); pw = new PrintWriter(sk.getOutputStream(), true ); while ( true ) { String ii = br.readLine(); if (ii != null ){ System.out.println( " 1 " ); jta.append( " Server说: " + ii + " " ); } } } catch (Exception e) { e.printStackTrace(); } finally { try { sk.close(); br.close(); pw.close(); } catch (IOException e) { e.printStackTrace(); } } } public void actionPerformed(ActionEvent arg0) { try { String str = jtf.getText(); jtf.setText( "" ); pw.println(str); pw.flush(); jta.append( " Client说: " + str + " " ); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { new CharClientText(); }}