当前位置:
文档之家› 用JAVA实现的简单的聊天程序
用JAVA实现的简单的聊天程序
} } }
用两个 java 文件实现,运行时先运行 talkserver.java,再运行 talkclient.java Talkserver.java:
//talkserver.java import .*; import java.io.*;
public class talkserver {
public class talkclient {
public static void main(String arg[]) { Socket socket; String s; try { //向本地服务器申请链接 //注意端口号要与服务器保持一致:2000 socket=new Socket("localhost",20000); System.out.println("连接成功"); System.out.println("**************************************"); System.out.println(" ");
//关闭连接 din.close();//关闭数据输入流 dout.close();//关闭数据输出流 in.close();//关闭输入流 out.close();//关闭输出流 socket.close();//关闭 socket } catch(Exception e) { System.out.println("Error:"+e);
while(true) { System.out.print (" 请输入您要发送的信息:"); s=sin.readLine();//读取用户输入的字符串 dout.writeUTF(s);//将读取的字符串传给 server if(s.trim().equals("BYE"))break;//如果是"BYE",就退出
public static void main(String arg[]) { ServerSocket server; Socket socket; String s; try { //在端口 2000 注册服务 server=new ServerSocket(20000); System.out.println("正在等待连接......"); socket=server.accept();//侦听连接请求,等待连接
System.out.println("连接成功"); System.out.println("**************************************"); System.out.println(" ");
//获得对应的 Socket 的输入/输出流 InputStream in=socket.getInputStream(); OutputStream out=socket.getOutputStream(); //建立数据库 DataInputStream din=new DataInputStream(in); DataOutputStream dout=new DataOutputStream(out); BufferedReader sin=new BufferedReader(new InputStreamReader(System.in)); System.out.println(" 请等待客户发送信息......");
else { System.out.println(" "); System.out.println(" "); } s=din.readUTF();// 从服务器读取获得的字符串 System.out.println("从服务器接收的信息为:"+s);// 打印字符串 if(s.trim().equals("BYE")) break;//如果是"BYE",就退出 }
if(s.trim().equals("BYE"));//如果是"BYE",就退出 }
//关闭连接 din.close();//关闭数据输入流 dout.close();//关闭数据输出流 in.close();//关闭输入流 out.close();//关闭输出流 socket.close();//关闭 socket } catch(Exception e) { System.out.println("Error:"+e); } } } talkclient.java: //talkserver.java import .*; import java.io.*;
//获得对应的 Socket 的输入/输出流 InputStream in=socket.getInputStream(); OutputStream out=socket.getOutputStream(); //建立数据库 DataInputStream din=new DataInputStream(in); DataOutputStream dout=new DataOutputStream(out); BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
while(true) { System.out.println(" "); System.out.println(" "); s=din.readUTF();//读入从 client 传来的字符串 System.out.println("从客户接收的信息为:"+s);//显示字符串 if(s.trim().equals("BYE")) break;//如果是"BYE",就退出 System.out.println("请输入您要发送的信息:"); s=sin.readLine();//读取用户输入的字符串 dout.writeUTF(s);//将读取的字符串传给 client