//服务器端代码
package com.leo.chatProject;
import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.*;import javax.swing.*;
public class ChatServer extends JFrame{
private JTextArea jta=new JTextArea();
//private ArrayList<Socket> socketArray=new ArrayList<Socket>();
public static void main(String[] args) {
new ChatServer();
}
public ChatServer(){
setLayout(new BorderLayout());
add(new JScrollPane(jta),BorderLayout.CENTER);
setTitle("ChatServer");
setSize(500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
try{
ServerSocket serverSocket=new ServerSocket(8000);
while(true){
Socket socket=serverSocket.accept();
//socketArray.add(socket);
//jta.append(socketArray.size()+"Connections");
HandleAClient task=new HandleAClient(socket);
new Thread(task).start();
}
}catch(IOException ex){
System.err.println(ex);
}
}
class HandleAClient implements Runnable{
Socket socket;
public HandleAClient(Socket socket){
this.socket=socket;
}
@Override
public void run() {
// TODO Auto-generated method stub
try{
BufferedReader inputFromClient1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter outputToClient1=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
String line=null;
while((line=inputFromClient1.readLine())!=null)
jta.append(line);
outputToClient1.println();
outputToClient1.flush();
}catch(IOException e){
System.err.println(e);
}
}
}
}//客户端代码
package com.leo.chatProject;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ChatClient1 extends JFrame{
private JTextField jtf=new JTextField();
private JTextArea jta=new JTextArea();
private PrintWriter toServer;
private BufferedReader fromServer;
//private DataOutputStream toServer;
public static void main(String[] args) {
new ChatClient1();
}
public ChatClient1(){
JPanel p=new JPanel();
p.setLayout(new BorderLayout());
p.add(new JLabel("Enter radius"),BorderLayout.WEST);
p.add(jtf,BorderLayout.CENTER);
jtf.setHorizontalAlignment(JTextField.RIGHT);
setLayout(new BorderLayout());
add(p,BorderLayout.NORTH);
add(new JScrollPane(jta),BorderLayout.CENTER);
jtf.addActionListener(new TextFieldListener());
setTitle("Client1");
setSize(500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
try{
Socket socket=new Socket("192.168.1.3",8000);
fromServer=new BufferedReader(new InputStreamReader(socket.getInputStream()));
toServer=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
}catch(IOException ex){
jta.append(ex.toString()+'\n');
}
}
private class TextFieldListener implements ActionListener{
public void actionPerformed(ActionEvent e){
String str1=jtf.getText();
String line=null;
try {
while((line=fromServer.readLine())!=null){
jta.append(line);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//jta.append(fromServer.readLine());
jta.append(str1);
toServer.println(str1);
toServer.flush();
}
}
}socketiostring
while((line=fromServer.readLine())!=null){ jta.append(line); } 的代码后程序是可以正常运行的,但我看不出我在客户端加的这个代码有任何问题