您的位置:首页 > 编程语言 > Java开发

java小聊天程序

2007-02-06 14:59 260 查看
服务器端:

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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: