欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java学习之利用TCP实现的简单聊天示例代码

程序员文章站 2023-12-17 10:48:46
tcp tcp协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。 tcp通过三次握手建立连接,通讯完成时要拆除连接,由于...

tcp

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

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

本文主要介绍了java利用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();
  }
 }
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

上一篇:

下一篇: