aewyNgmoud
小水手

UID 30080
精华
0
积分 15
帖子 15
阅读权限 10
注册 2007-5-11
状态 离线
|
请问如何编写简单的基于tcp的java聊天室?
我想做个2个人之间的简单的聊天室,但是不能实现通信,请看看我的代码:
图形界面没发,构造方法中接收传的JTextArea的对象。
服务器端:
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
public class TCPServer{
JTextArea t1;
public TCPServer(JTextArea tt){tt.setText(""); t1=tt;}
public void set(){
String datakey=null;
String data=null;
try{
ServerSocket Server=new ServerSocket(6666);
Socket Client=Server.accept();
System.out.print("服务器连接成功\n");
BufferedReader in=new BufferedReader(new InputStreamReader(Client.getInputStream()));
BufferedReader readFromKeyboard=new BufferedReader(new InputStreamReader(System.in));
PrintWriter out=new PrintWriter(Client.getOutputStream(),true);
//ObjectInputStream in=new ObjectInputStream(Client.getInputStream());
//ObjectOutputStream out=new ObjectOutputStream(Client.getOutputStream());
//BufferedReader readFromKeyboard=new BufferedReader(new InputStreamReader(System.in));
do{
data=in.readLine();
t1.append(data);
}while(!data.equals("quit"));
do{
datakey=readFromKeyboard.readLine();
out.println(datakey);
//out.write(datakey);
}while(!datakey.equals("quit"));
out.close();
in.close();
Client.close();
Server.close();
}catch(Exception e){
System.out.print("不起作用\n"+e);}
}
}
客户端:
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
class TCPClient{
JTextArea t2;
public TCPClient(JTextArea tt){tt.setText(""); t2=tt;}
public void set(){
String data=null;
String Clientdata=null;
try{
Socket Client=new Socket("localhost",6666);
PrintWriter out=new PrintWriter(Client.getOutputStream(),true);
BufferedReader in=new BufferedReader(new InputStreamReader(Client.getInputStream()));
BufferedReader readFromKeyboard=new BufferedReader(new InputStreamReader(System.in));
//ObjectInputStream in=new ObjectInputStream(Client.getInputStream());
//ObjectOutputStream out=new ObjectOutputStream(Client.getOutputStream());
//BufferedReader readFromKeyboard=new BufferedReader(new InputStreamReader(System.in));
do{
Clientdata=readFromKeyboard.readLine();
out.println(Clientdata);
//out.write(Clientdata);
data=in.readLine();
t2.append(data);
}while(!Clientdata.equals("quit"));
out.close();
in.close();
Client.close();
}catch(Exception e)
{System.out.print("不起作用\n"+e);}
}
}
[ 本帖最后由 aewyNgmoud 于 2007-6-15 17:59 编辑 ]
|  ...... |
|