XiaoHui.Net 笑汇程序员论坛Java 讨论区

   请问如何编写简单的基于tcp的java聊天室?


页: [1]

aewyNgmoud2007-6-11 11:35
请问如何编写简单的基于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);}
   }
}

[[i] 本帖最后由 aewyNgmoud 于 2007-6-15 17:59 编辑 [/i]]



查看完整版本: 请问如何编写简单的基于tcp的java聊天室?