本文实例讲述了Java基于Tcp的基础聊天功能。分享给大家供大家参考,具体如下:
最基础的聊的天,用户端和服务器端每次说一句,而且严格规定了先后到顺序。
服务器端:
进口. io . *; 进口java.net。*; 公开课ChatServer { 公共静态void main (String [] args) { 考察一下服务器=零; 尝试{ 服务器=考察(12138); }捕捉(IOException e) { system . out。println(“错误”+ e); }//服务器=零; 尝试{ 套接字ac=零;//ac=新的套接字();//ac=零; ac=server.accept (); BufferedReader=零; 是=new BufferedReader(新InputStreamReader (ac.getInputStream ())); BufferedReader说=new BufferedReader(新InputStreamReader(系统)); PrintWriter os=new PrintWriter (ac.getOutputStream ()); 字符串行=零; system . out。println (“clinent”+ is.readLine ()); 行=dis.readLine (); 而(! line.equals(省长)){ os.println(线); os.flush (); system . out。println(“服务器”+线); system . out。println(“客户端”+ is.readLine ()); 行=dis.readLine (); } os.close (); dis.close (); is.close (); ac.close (); }捕捉(异常e) { system . out。println(“错误”+ e); } } } >之前用户端:
公开课ChatClient { 公共静态void main (String [] args) { 套接字客户=零; 尝试{ 客户=新的套接字(127.0.0.1,12138); BufferedReader说=new BufferedReader(新InputStreamReader(系统)); BufferedReader=new BufferedReader(新InputStreamReader (client.getInputStream ())); PrintWriter os=new PrintWriter (client.getOutputStream ()); 字符串行=dis.readLine (); 而(! line.equals(省长)){ os.println(线); os.flush (); system . out。println(“客户端”+线); system . out。println(“服务器”+ is.readLine ()); 行=is.readLine (); } os.close (); dis.close (); is.close (); client.close (); }捕捉(异常e) { system . out。println(“错误”+ e); } } } >之前无论是用户端还是服务器端都用了BufferedReader用来写入一些了连续的字符串,用PrintWriter进行输出。
<强>注:强> BufferedWriter接收到的参数需要是字符类的数据流,所以要建一个inputStreamReader,而inputStreamReader的参数是数据流即可。
上面规定了写入的顺序是客户端先写,然后是服务器端;
注意要在循环结束的时候近个个数据流和端口。
更多关于java相关内容感兴趣的读者可查看本站专题:《java Socket编程技巧总结》,《java文件与目录操作技巧汇总》、《java数据结构与算法教程》、《java操作DOM节点技巧总结》和《java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
Java基于Tcp的基础聊天功能实例