⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverthread.java

📁 java scoket通信的源程序
💻 JAVA
字号:
import java.net.*;
import java.util.*;
import java.io.*;
public class ServerThread extends Thread         //服务器监听端口线程
{
	//声明ServerSocket类对象
    ServerSocket serverSocket;  
    //指定服务器监听端口常量
    public static final int PORT = 8765;

    //创建两个Vector对象,分别用于存储客户端连接的Socket对象
    Vector clients;
    Vector messages;

    BroadCast broadcast;    //声明BroadCast类对象
    String ip;
    InetAddress myIPaddress=null;

    public ServerThread()
    {
    	//创建两个Vector数组尤为重要,clients负责存储多个客户端与服务器的连接
    	//messages负责存储服务器接收到的全部客户端的信息
        clients=new Vector();     
        messages=new Vector(); 
        
        try
        {
        	//创建ServerSocket类对象
            serverSocket = new ServerSocket(PORT);
        }
        catch(IOException E){}
        //获取本地服务器地质信息
        try { myIPaddress=InetAddress.getLocalHost();}
        catch (UnknownHostException e) {}
        ip=String.valueOf(myIPaddress);
        Sever.jTextArea1.append("服务器地址:"+ip+":"+String.valueOf(serverSocket.getLocalPort())+"\n");
        
        //创建广播信息线程并启动
        broadcast = new BroadCast(this);
        broadcast.start();
    }

//注意:一旦监听到有客户端请求,就创建一个ClientThread来维持服务器与这个客户端的连接
     public void run()
     {
         while(true)
         {
             try
             {
            	 //获取客户端连接
                 Socket socket = serverSocket.accept();
                 //创建ClientThread线程并启动
                 ClientThread clientThread=new ClientThread(socket,this);
                 clientThread.start();
                 if(socket!=null)
                 {
                     synchronized (clients)
                     {
                    	 //将客户端连接加入到Vector数组中保存
                         clients.addElement(clientThread);
                     }
                 }
             }
             catch(IOException E)
             {
                 System.out.println("发生异常:"+E);
                 System.out.println("建立客户端联机失败!");
                 System.exit(2);
             }
         }
     }

     public void finalize()    //关闭serverSocket方法
     {
         try
         {
             serverSocket.close();
         }
         catch(IOException E){}
         serverSocket=null;
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -