Java 利用 Socket 实现多线程通讯

本文详细介绍了如何使用Java的Socket实现多线程通信。通过创建ServerThread监听localhost:8080,每当有连接时创建新的Socket线程处理。主线程则创建多个Client对象发送消息。讲解了Socket的原理,将其视为网络通信的统一信息载体,并讨论了TCP协议下Socket的使用。同时,文章还涉及到了IO流的基础知识,包括InputStream和OutputStream在数据传输中的角色以及如何正确配对使用。
摘要由CSDN通过智能技术生成

目标

一个项目中,首先创建一个独立于主线程的 ServerThread :负责监听 localhost:8080 端口,该线程每次接收到传来的 Socket ,独立出一个单独的 Socket 线程,负责接受和回复信息。
主线程生成多个 Client 对象,分别向 localhost:8080 通过 socket 发送消息。从而模拟客户端——服务器通信。

知识点

  • Socket 网络通信
  • 多线程
  • Stream

Code

  • Client.java
package socketDemo;
// 省略 import
public class Client {
   
    private Socket socket;

    public Client(){
   
        try{
   
            this.socket = new Socket("localhost", 8080);
        }catch (IOException e){
   
            e.printStackTrace();
        }
    }

    public Client(String host, int port){
   
        try{
   
            this.socket = new Socket(host, port);
        }catch (IOException e){
   
            e.printStackTrace();
        }
    }

    public void send(String info){
   
        try{
   
            PrintWriter writer = new PrintWriter(socket.getOutputStream());
            writer.print(info);
            writer.flush();
            System.out.println("Client:     send message: " + info);
            socket.shutdownOutput();

            BufferedReader reader 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值