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

📄 server_socket1.java

📁 用Java编写的基于Socket的聊天室小程序!
💻 JAVA
字号:
import java.io.*;
import java.net.*;
import java.util.*;
import java.text.*;
import java.awt.*;
import java.awt.event.*;

public class Server_Socket implements Runnable{
    private Frame f;
    public static TextArea ta1;
    private Label l1;
//    private Button b1;

    static final int PORT=8888;
    ServerSocket serverSocket;
    private static BufferedReader in;
    private static PrintWriter out;

    Thread chatAcceptThread;
    BroadcastThread broadcastThread;
    java.util.Vector clients;
    java.util.Vector clientsInfor;
    public static int index=0;

    public void display()throws IOException{
	    f=new Frame("聊天室");
     	f.setSize(470,250);
      	f.setLocation(20,20);
       	f.setBackground(Color.pink);
       	f.setLayout(new FlowLayout(FlowLayout.CENTER));
	    l1=new Label("欢迎您进入【爱★我★该★爱】聊天室",Label.CENTER);
	    ta1=new TextArea();
//	    ta2=new TextArea();
	    ta1.setEditable(false);
//	    ta2.setEditable(true);
	    f.add(l1);
        f.add(ta1);
//        f.add(ta2);
//        b1=new Button("回复");
//        f.add(b1);
//        b1.addActionListener(this);
	    f.addWindowListener(new WinClose());
	    f.setVisible(true);
    }
/*
    public void actionPerformed(ActionEvent e){
        String str;
        SimpleDateFormat sdf=new SimpleDateFormat();
        sdf.applyPattern("HH:mm:ss");
        String timeStr = sdf.format(new Date());
        if((e.getSource())==b1){
            str=ta2.getText();
            try{
                while(true){
                    Socket socket=serverSocket.accept();
                    CommunicateThread ct=new CommunicateThread(socket,this,index);
                    clients.add(ct);
                    index++;
                    clientsInfor.add("Server:"+str);
                    ta1.append("Server:"+str+"  ["+timeStr+"]\n");
                    ta2.setText("");
                    }
            }catch(IOException e1){
        }
    }

        String str;

        SimpleDateFormat sdf=new SimpleDateFormat();
        sdf.applyPattern("HH:mm:ss");
        String timeStr = sdf.format(new Date());
        if((e.getSource())==b1){
            str=ta2.getText();
            out.println("Server:"+str+"  ["+timeStr+"]");
            ta1.append("Server:"+str+"  ["+timeStr+"]\n");
            ta2.setText("");

        }

    }
*/
    private void serverListen(){
        try{
        serverSocket=new ServerSocket(PORT);
        }catch(IOException e){
            ta1.append("server failed!\n");
        }
        clients=new java.util.Vector();
        clientsInfor=new java.util.Vector();

        chatAcceptThread=new Thread(this);
        chatAcceptThread.start();

        broadcastThread=new BroadcastThread(this);
        broadcastThread.start();
    }

    public void run(){
        int i=0;
        try{
            while(true){
            Socket socket=serverSocket.accept();
            CommunicateThread ct=new CommunicateThread(socket,this,index);
            clients.add(ct);
            i++;
            index++;
            clientsInfor.add("Client"+i);
            ta1.append("Client"+i+" join in\n");
        }
        }catch(IOException e){
        }
    }

    public static void main(String[] args)throws IOException{
        Server_Socket server=new Server_Socket();
        server.display();
        server.serverListen();
    }
}

⌨️ 快捷键说明

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