【Java精品源码栏目提醒】:网学会员,鉴于大家对Java精品源码十分关注,论文会员在此为大家搜集整理了“java简单聊天小程序 - 软件工程”一文,供大家参考学习!
网络编程 java 简单聊天小程序 下次修改成多线程的,这个必须等待对方输入结束,有机会修改成可视化窗口 By 刘汪洋 QQ 605283073写入正确的 ip 地址 即可正常用 当然 目前只停留在 命令行界面还没有写成 可视化窗口界面运行时 请带上参数如 java TransServer 张三Java TransClient 李四 和刘正南 在局域网 试验的 截图 成功这是修改后的加上了姓名!(修改前的截图)代码:客户端:package com.baidu.chatimport java.io.BufferedReaderimport java.io.IOExceptionimport java.io.InputStreamReaderimport java.io.PrintWriterimport java.net.Socketimport java.net.UnknownHostException// 简单聊天小程序 客户端public class TransClient public static void mainString argsifargs0nullargs0 他 startClientargs0private static void startClientString nameSocket sk nullBufferedReader bufr nulltry sk new Socket127.0.0.110000// 1 创建 socket 服务 bufr new BufferedReadernew InputStreamReaderSystem.in// 2 获取录入键盘 PrintWriter out new PrintWritersk.getOutputStreamtrue// 3 获取输出流 true 表示自动刷新 BufferedReader bufIn new BufferedReadernewInputStreamReadersk.getInputStream// 4 获取输入流// 5 发送 获取 String text_send String text_get String ServerName System.out.print聊天已开启...rn我说: out.printlnname//第一次将自己姓名发给 ServerName bufIn.readLine whiletext_send bufr.readLinenull out.printlntext_send//将我说的话发给服务端 text_get bufIn.readLine//读取服务端发来的文本 System.out.printlntext_get iftext_send.equals886 sk.shutdownInput break else if text_get.equalsServerName说:886 break else System.out.print我说: catch UnknownHostException e e.printStackTrace catch IOException e e.printStackTracefinallytry bufr.closesk.close catch IOException e e.printStackTrace 服务端 package com.baidu.chatimport java.io.BufferedReaderimport java.io.IOExceptionimport java.io.InputStreamReaderimport java.io.PrintWriterimport java.net.ServerSocketimport java.net.Socketimport java.util.Scanner//简单聊天小程序 服务端public class TransServer public static void mainString args startServerargs0private static void startServerString serverNameServerSocket ss null Socket sk nullScanner in null try ss new ServerSocket 10000// 创建服务端 System.out.printlnServer started sk ss.accept// 获取客户端 socket BufferedReader bufIn new BufferedReadernewInputStreamReadersk.getInputStream//获取客户端输入流 PrintWriter bufOut new PrintWritersk.getOutputStreamtrue//获取客户端输出流in new ScannerSystem.in String ip ip sk.getInetAddress.getHostAddressSystem.out.printlnipis connectingString text_get //获取的字符串 String text_send //返回的字符串 String userName userName bufIn.readLine bufOut.printlnserverName whiletext_get bufIn.readLine null System.out.printlnuserName说:text_get// 获取 客户端 发来的文本输出到控制台上 System.out.print我说:text_send in.nextLine// 获取 服务端的输入bufOut.printlnserverName说:text_send//将 服务端 的输入返回给 客户端iftext_send.equals886 sk.shutdownInput sk.shutdownOutput break else if text_get.equals886 break catch IOException e e.printStackTracefinallyin.closetry sk.closess.close catch IOException e e.printStackTrace上一篇:Java应用程序——控制台输入