java实现简易聊天功能
本文实例为大家分享了java实现简易聊天功能的具体代码,供大家参考,具体内容如下
应用客户端和服务端通过控制台的输入输出实现简易聊天功能
思路:
1.创建服务端类ChatServerThread和客户端类ChatClientThradd
2.创建发送类Sendlmpl和接收类Receivelmpl
3.在服务端类中监听8888号端口,并开启发送和接收线程
4.在客户端类中连接8888号端口并开启发送和接收线程
5.在发送类中,开启线程循环,发送用户输入的信息
6.在接收类中,开启线程循环,接收网络发送的数据
代码实现
服务端ChatServerThread
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package test; import java.net.ServerSocket; import java.net.Socket; public class ChatServerThread{ //服务端 public static void main(String[] args) throws Exception{ ServerSocket serverSocket = new ServerSocket( 8888 ); //监听8888号端口 Socket socket = serverSocket.accept(); //开启发送和接收线程 Sendlmpl sendlmpl= new Sendlmpl(socket); new Thread(sendlmpl).start(); Receivelmpl receivelmpl= new Receivelmpl(socket); new Thread(receivelmpl).start(); } } |
客户端ChatClientThradd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package test; import test.Receivelmpl; import test.Sendlmpl; import java.net.Socket; public class ChatClientThradd { //客户端 public static void main(String[] args) throws Exception{ //连接8888号端口 Socket socket= new Socket( "127.0.0.1" , 8888 ); //开启发送和接收线程 Sendlmpl sendlmpl= new Sendlmpl(socket); new Thread(sendlmpl).start(); Receivelmpl receivelmpl= new Receivelmpl(socket); new Thread(receivelmpl).start(); } } |
发送类Sendlmpl :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package test; import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import java.util.Scanner; public class Sendlmpl implements Runnable { //发送类 private Socket socket; public Sendlmpl(Socket socket) { this .socket = socket; } @Override public void run() { Scanner scanner = new Scanner(System.in); //线程循环,发送用户输入的信息 while ( true ) { try { OutputStream outputStream =socket.getOutputStream(); String string=scanner.nextLine(); outputStream.write(string.getBytes()); } catch (IOException e) { e.printStackTrace(); } } } } |
接收类Receivelmpl :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class Receivelmpl implements Runnable{ //接收类 private Socket socket; public Receivelmpl(Socket socket) { this .socket = socket; } @Override public void run() { //循环接收网络发来的信息 while ( true ) { try { InputStream inputStream=socket.getInputStream(); byte [] bytes= new byte [ 1024 ]; int z=inputStream.read(bytes); System.out.println( new String(bytes, 0 ,z)); } catch (IOException e) { e.printStackTrace(); } } } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
SpringMVC+Spring+Mybatis实现支付宝支付功能的示例代码
这篇文章主要介绍了SpringMVC+Spring+Mybatis实现支付宝支付功能的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-05-05Maven中optional和scope元素的使用弄明白了吗
这篇文章主要介绍了Maven中optional和scope元素的使用弄明白了吗,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12maven scope provided和runtime的例子说明
这篇文章主要介绍了maven scope provided和runtime的例子说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-12-12
最新评论