为了账号安全,请及时绑定邮箱和手机立即绑定

java socket 通信socketServer 服务端多线程

标签:
Java

线程代码

    import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class ServerThread extends Thread{

    // 和本线程相关的socket
    Socket socket = null;
    public ServerThread(Socket socket) {
        this.socket = socket;
    }

    //  线程执行的操作,响应客服端请求
    public void run() {

        InputStream is = null;
        InputStreamReader isr = null;
        BufferedReader br = null;
        OutputStream os = null;
        PrintWriter pw = null;
        try {
            // 3.获取输入流,并读取客服端信息
            is = socket.getInputStream();//字节输入流
            isr = new InputStreamReader(is);//将字节流转换为字符流
            br = new BufferedReader(isr);//为输入流添加缓冲
            String info = null;
            String infoResult = "";
            String sendString="";
            while ((info=br.readLine())!=null) {//循环读取客服端的信息

                infoResult = infoResult+info;

            }

            socket.shutdownInput();//关闭输入流

            //=====================================================

            System.out.println(" In:"+infoResult);

            // 4.响应客服端  即给客服端发送信息
            os = socket.getOutputStream();//字节输出流
            pw = new PrintWriter(os);//将输出流包装为打印流
            //sendString = Integer.toString(BiaoQian);  

            pw.write(sendString);//  写入客户端的信息+只能是纯数字字符串
            System.out.println("Out:"+sendString);          
            pw.flush();//调用flush()方法将缓冲输出
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                // 5.关闭资源
                if (pw!=null) {pw.close();}
                if (os!=null) {os.close();}
                if (br!=null) {br.close();}
                if (isr!=null) {isr.close();}
                if (is!=null) {is.close();  }
                if (socket!=null) {socket.close();}

            } catch (Exception e2) {
                // TODO: handle exception
            }

        }

    }

}
点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消