首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java.net. 界面聊天程序.请大家帮帮助,该怎么处理

2012-01-29 
java.net.* 界面聊天程序.请大家帮帮助这个是客户端的程序:packageasimportjava.awt.BorderLayoutimport

java.net.* 界面聊天程序.请大家帮帮助
这个是客户端的程序:
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{

/**
  *   @param   args
  */
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( "localhost ",9000);
                jta.append( "已连接到服务器 "+sk.getInetAddress().getHostName()+ "\n ");
pw   =   new   PrintWriter(sk.getOutputStream(),true);
}  
                catch   (UnknownHostException   e)  
{
e.printStackTrace();
}  
                catch   (Exception   e)
                {
e.printStackTrace();
}
      }  
public   void   actionPerformed(ActionEvent   arg0)  
{

try   {
      String   str   =   jtf.getText();
      jtf.setText( " ");
      pw.write(str);
      jta.append( "Client: "+str+ "\n ");
     
}   catch   (Exception   e)   {
e.printStackTrace();
}

}
public   static   void   main(String[]   args)
{
                  new   CharClientText();


}
}


这个是服务器的程序:

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=null;
Socket   sk=null;
BufferedReader   br=null;
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(9000);
  sk   =   ss.accept();
  jta.append( "已连接到客户机 "+sk.getInetAddress().getHostName()+ "\n ");
  br   =   new   BufferedReader(new   InputStreamReader(sk.getInputStream()));
  System.out.println( "1 ");
 
  while(true)
  {
  String   ii=br.readLine();
  System.out.println( "1 ");
  if(ii!=null){
  System.out.println( "1 ");    
              jta.append( "Client: "+ii);
  }
  System.out.println( "2 ");
  }

    }  
catch   (Exception   e)  
    {
  e.printStackTrace();
    }
finally
{
try   {
ss.close();
sk.close();
br.close();
}   catch   (IOException   e)   {
e.printStackTrace();
}
}
       
}  
public   void   actionPerformed(ActionEvent   arg0)
{

}
public   static   void   main(String[]   args)
{
                  new   CharServerText();
}
}
代码多了点。。请个位朋友帮助看一下或运行一下。。。。



[解决办法]

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{

/**
* @param args
*/
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( "localhost ",9000);
jta.append( "已连接到服务器 "+sk.getInetAddress().getHostName()+ "\n ");
pw = new PrintWriter(sk.getOutputStream(),true);
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent arg0)
{

try {
String str = jtf.getText();

jtf.setText( " ");
pw.println(str);// modify here
jta.append( "Client: "+str+ "\n ");

} catch (Exception e) {
e.printStackTrace();
}

}
public static void main(String[] args)
{
new CharClientText();
}
}

热点排行