用Java从0开始实现Socket编程视频直播通信02—————多任务服务器,实现群聊私聊

要实现多任务的服务器,就离不开线程的使用,首先通过使用Runnable接口来进行线程操作,改一改代码。

package comserver240808;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MServer {
    //自定义服务器
    public void creatServer() throws Exception{
        //创建服务器
        ServerSocket  server = new ServerSocket(8899);
        System.out.println("启动服务器。。。");
        while (true) {
            //阻塞监听连接过来的客户端
            Socket socket = server.accept();
            //获取输入输出流
            OutputStream outputStream = socket.getOutputStream();
            InputStream inputStream = socket.getInputStream();
            String msg = "Connection successful!\r\n";
            //发送数据
            outputStream.write(msg.getBytes());
            outputStream.flush();
            //启动线程跟客户端通信
            ServerThread st = new ServerThread(socket);
            new Thread(st).start();
        }

    }

    public static void main(String[] args) {
        try {
            new MServer().creatServer();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

package comserver240808;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

//保持跟客户端通信的线程
public class ServerThread implements Runnable{
    private Socket socket;
    private InputStream inputStream;
    private OutputStream outputStream;
    public ServerThread(Socket socket){
        this.socket = socket;
        try {
            inputStream = socket.getInputStream();
            outputStream = socket.getOutputStream();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    @Override
    public void run() {
        try {
            String msg = readMsg(inputStream);
            //群聊3个人
            System.out.println("msg:"+msg);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    //读取客户端数据
    public String readMsg(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值