Java实现多线程局域网聊天室

package TCP;

import java.io.IOException;

import java.io.InputStream;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.Scanner;

public class TCPserver2 {

     public static void main(String[] args) {

         Scanner scan = new Scanner(System.in);

         // 实例化具有多线程功能的服务器专用 socket

         // 需要传递端口号作为初始化变量

         SuperSocket socket_1 = new SuperSocket(9996);

         SuperSocket socket_2 = new SuperSocket(9998);

         SuperSocket socket_3 = new SuperSocket(9997);

         // 建立三个子线程

         Thread s1 = new Thread(socket_1);

         Thread s2 = new Thread(socket_2);

         Thread s3 = new Thread(socket_3);

         try {

             while(true) {

             // 开启线程

                 s1.start();

                 s2.start();

                 s3.start();

                 if(scan.next()=="123"){

                 // 结束线程

                     break;

                 }

             }

         } finally {

             try {

             // 关闭套接字

                 socket_1.close();

                 socket_2.close();

                 socket_3.close();

             } catch (IOException e) {

                 e.printStackTrace();

             }

         }

     }

}

class SuperSocket extends Socket implements Runnable{

     InputStream is;

     byte[] buffer;

     Socket socket=null;

     ServerSocket serverSocket=null;

     public SuperSocket(int port){

         try {

         // 初始服务器型套接字

             serverSocket = 外汇跟单gendan5.comnew ServerSocket(port);

             buffer = new byte[1024];

         } catch (IOException e) {

             e.printStackTrace();

         }

     }

     @Override

     public void run() {

         try {

         // 等待端口连接

             socket = serverSocket.accept();

             // 连接完成后创建输入流

             is = socket.getInputStream();

             // 读取客户端传送信息

             int len = is.read(buffer);

             String str = new String(buffer, 0, len);

             System.out.println(str);

         } catch (IOException e) {

             e.printStackTrace();

         }

     }

}

 

请使用浏览器的分享功能分享到微信等