import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentListener;
import java.awt.event.ContainerListener;
import javax.swing.*;
public class ChatOne extends JFrame{
private JTextField client=new JTextField();
private JTextArea server=new JTextArea();
private DataInputStream fromclient;
private DataOutputStream toclient;
public ChatOne(){ setLayout(new GridLayout(2,2));
client.addActionListener(new Listener());
server.append("聊天记录:"+'\n');
JPanel p1=new JPanel(new BorderLayout());
JPanel p2=new JPanel(new BorderLayout());
p1.add(new Label("聊天内容"),BorderLayout.NORTH);
p1.add(server,BorderLayout.CENTER);
p2.add(client,BorderLayout.CENTER);
p2.add(new Label("Client"),BorderLayout.NORTH);
p1.add(new JScrollPane(server));
p2.add(new JScrollPane(client));
add(p1); add(p2); setSize(400,350);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try{
ServerSocket ss=new ServerSocket(8040);
Socket s=ss.accept();
fromclient =new DataInputStream (s.getInputStream());
toclient=new DataOutputStream (s.getOutputStream());
//前面四行是建立起连接
//读取从客户端的数据
while(true){
byte b[] = new byte[1024] ;
// 数组大小由文件决定
int len = 0 ;
int temp = 0 ;
// 接收每一个读取进来的数据
while((temp=fromclient.read())!=-1){
// 表示还有内容,文件没有读完
b[len] = (byte)temp ; len++ ;
}
server.append("client2 say: "+b.toString()+'\n');
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
private class Listener implements ActionListener{//当点击回车键时产生的事件监听
public void actionPerformed(ActionEvent e) {
String s=client.getText().trim();
try {
byte[] b=s.getBytes(); toclient.write(b);//将输入的内容发送至client
toclient.flush(); }
catch (IOException e1) {
e1.printStackTrace();
} server.append("client1 say: "+s+'\n');//在聊天记录中显示出来 client.setText(null);
}
}
public static void main(String args[]){
new ChatOne();
}
}
import java.net.*;
import java.util.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentListener;
import java.awt.event.ContainerListener;
import javax.swing.*;
public class ChatOne extends JFrame{
private JTextField client=new JTextField();
private JTextArea server=new JTextArea();
private DataInputStream fromclient;
private DataOutputStream toclient;
public ChatOne(){ setLayout(new GridLayout(2,2));
client.addActionListener(new Listener());
server.append("聊天记录:"+'\n');
JPanel p1=new JPanel(new BorderLayout());
JPanel p2=new JPanel(new BorderLayout());
p1.add(new Label("聊天内容"),BorderLayout.NORTH);
p1.add(server,BorderLayout.CENTER);
p2.add(client,BorderLayout.CENTER);
p2.add(new Label("Client"),BorderLayout.NORTH);
p1.add(new JScrollPane(server));
p2.add(new JScrollPane(client));
add(p1); add(p2); setSize(400,350);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try{
ServerSocket ss=new ServerSocket(8040);
Socket s=ss.accept();
fromclient =new DataInputStream (s.getInputStream());
toclient=new DataOutputStream (s.getOutputStream());
//前面四行是建立起连接
//读取从客户端的数据
while(true){
byte b[] = new byte[1024] ;
// 数组大小由文件决定
int len = 0 ;
int temp = 0 ;
// 接收每一个读取进来的数据
while((temp=fromclient.read())!=-1){
// 表示还有内容,文件没有读完
b[len] = (byte)temp ; len++ ;
}
server.append("client2 say: "+b.toString()+'\n');
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
private class Listener implements ActionListener{//当点击回车键时产生的事件监听
public void actionPerformed(ActionEvent e) {
String s=client.getText().trim();
try {
byte[] b=s.getBytes(); toclient.write(b);//将输入的内容发送至client
toclient.flush(); }
catch (IOException e1) {
e1.printStackTrace();
} server.append("client1 say: "+s+'\n');//在聊天记录中显示出来 client.setText(null);
}
}
public static void main(String args[]){
new ChatOne();
}
}