java中如何利用TCP实现聊天功能

这篇文章主要介绍了java中如何利用TCP实现聊天功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在叠彩等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作定制设计,公司网站建设,企业网站建设,品牌网站设计,全网营销推广,外贸网站制作,叠彩网站建设费用合理。

TCP

TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。

TCP通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。

示例代码

使用tcp协议实现的简单聊天功能(非常简单的)

思想:使用2个线程,一个线程是用来接收消息的,另一个线程是用来发消息的。

客户端Demo代码:

public class SendDemo {
 public static void main(String[] args) throws Exception{
 Socket socket= new Socket(InetAddress.getLocalHost(),8888);
 SendImpl sendImpl= new SendImpl(socket);
 //发送的线程
 new Thread(sendImpl).start();
 //接收的线程
 ReciveImpl reciveImpl=new ReciveImpl(socket);
 new Thread(reciveImpl).start();
 }
}

服务器端Demo代码:

public class ServerDemo {
 public static void main(String[] args) throws Exception {
 ServerSocket serverSocket =new ServerSocket(8888);
 Socket socket=serverSocket.accept();
 SendImpl sendImpl= new SendImpl(socket);
 new Thread(sendImpl).start();
 ReciveImpl reciveImpl=new ReciveImpl(socket);
 new Thread(reciveImpl).start();
 }
}

发送线程的Demo代码:

public class SendImpl implements Runnable{
 private Socket socket;
 public SendImpl(Socket socket) {
 this.socket=socket;
 // TODO Auto-generated constructor stub
 }
 @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) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
 }
 }
}

接收线程的Demo代码:

public class ReciveImpl implements Runnable {
 private Socket socket;
 public ReciveImpl(Socket socket) {
 this.socket=socket;
 // TODO Auto-generated constructor stub
 }
 @Override
 public void run() {
 while(true ){
  try {
  InputStream inputStream = socket.getInputStream();
  byte[] b=new byte[1024];
  int len= inputStream.read(b);
  System.out.println("收到消息:"+new String(b,0,len));
  
  } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
 }
 }
}

感谢你能够认真阅读完这篇文章,希望小编分享的“java中如何利用TCP实现聊天功能”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


分享文章:java中如何利用TCP实现聊天功能
网址分享:http://pwwzsj.com/article/gcejje.html