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

2025-05-29 0 51

TCP

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

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

本文主要介绍了java利用TCP实现简单聊天的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

示例代码

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

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

客户端Demo代码:

?

1

2

3

4

5

6

7

8

9

10

11
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代码:

?

1

2

3

4

5

6

7

8

9

10
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代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21
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代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22
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();

}

}

}

}

总结

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

原文链接:http://www.cnblogs.com/xuzhaocai/archive/2017/12/24/8099681.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java学习之利用TCP实现的简单聊天示例代码 https://www.kuaiidc.com/113368.html

相关文章

发表评论
暂无评论