java简单聊天小程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException;
// 简单聊天小程序
客户端
public class TransClient {
public static void main(String[] args) {
3 获取输出
BufferedReader bufIn = new BufferedReader(new InputStreamReader(sk.getInputStream()));// // 5 发送 获取 String text_send = ""; String text_get = ""; String ServerName = ""; 4 获取输入流
服务端
package com.baidu.chat;
import java.io.BufferedReader;
import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; //简单聊天小程序 服务端 public class TransServer {
}
网络编程
java 简单聊天小程序 [下次修改成多线程的,这个必须等待
对方输入结束,有机会修改成可视化窗口] By 刘汪洋 写入正确的 ip 地址 即可正常用 当然 目前只停留在 命令行界面 还没有写成 可视化窗口界面 运行时 请带上参数 如 java TransServer 张三
Java TransClient 李四
} catch (IOException e) { e.printStackTrace(); }finally{ in.close(); try { sk.close(); ss.close(); } catch (IOException e) { e.printStackTrace();
} } }
sk = new Socket("127.0.0.1",10000);//
1
创建 socket 服务
bufr = new BufferedReader(new InputStreamReader(System.in));// 入键盘
2 获取录
PrintWriter out = new PrintWriter(sk.getOutputStream(),true);// 流 true 表示自动刷新
if(args[0]==null) args[0] = "他";
startClient(args[0]); }
private static void startClient(String name) { Socket sk = null; BufferedReader bufr = null;
try {
( 和刘正南 在局域网 这是修改后的 加上了姓名! )
试验的 截图
成功
(修改前的截图)
代码:
客户端:
package com.baidu.chat;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;
}
} catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { bufr.close();
sk.close();
} catch (IOException e) { e.printStackTrace(); } } } }
public static void main(String[] args) { startServer(args[0]); }
private static void startServer(String serverName) { ServerSocket ss = null; Socket sk =null; Scanner in = null; try {
text_get = bufIn.readLine();//读取服务端发来的文本
System.源自文库ut.println(text_get);
if(text_send.equals("886")) { sk.shutdownInput(); break; } else if (text_get.equals(ServerName+"说:886")) { break; }else{ System.out.print("我说:"); }
System.out.print("聊天已开启..."+"\r\n"+"我说:");
out.println(name);//第一次将自己姓名发给 ServerName = bufIn.readLine(); while((text_send= bufr.readLine())!=null) {
out.println(text_send);//将我说的话发给服务端
InputStreamReader(sk.getInputStream()));//获取客户端输入流 PrintWriter bufOut = new PrintWriter(sk.getOutputStream(),true);//获 取客户端输出流 in = new Scanner(System.in); String ip = ""; ip = sk.getInetAddress().getHostAddress(); System.out.println(ip+"is connecting");
ss = new ServerSocket (10000);// 创建服务端 System.out.println("Server started"); sk = ss.accept();// 获取客户端 socket BufferedReader bufIn = new BufferedReader(new
String text_get = "";//获取的字符串 String text_send = "";//返回的字符串 String userName = ""; userName =bufIn.readLine(); bufOut.println(serverName); while((text_get = bufIn.readLine())!= null) { System.out.println(userName+"说:"+text_get);// 获取 客户端 发来的文本 输出到控制台上 System.out.print("我说:"); text_send = in.nextLine();// 获取 服务端的输入 bufOut.println(serverName+"说: "+text_send);//将 服务端 户端 if(text_send.equals("886")) { sk.shutdownInput(); sk.shutdownOutput(); break; } else if (text_get.equals("886")) { break; } } 的输入返回给 客