serversocketmult.java

来自「用Java编写的基于Socket的聊天室小程序!」· Java 代码 · 共 108 行

JAVA
108
字号
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;

public class ServerSocketMult extends Thread implements ActionListener{
    private Frame f;
    private TextArea ta1,ta2;
    private Label l1;
    private Button b1;
    static final int PORT=8888;
    private Socket socket;
    private BufferedReader in;
    private PrintWriter out;
    private BufferedReader wt;

    public void display(){
	    f=new Frame("聊天室");
     	f.setSize(470,450);
      	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);
	    f.addWindowListener(new WinClose());
	    f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e){
        String str1;
        if((e.getSource())==b1){
            str1=ta2.getText();
            out.println(str1);
        }
    }

    public void Mult(Socket s)throws IOException{
        socket=s;
        in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
        wt=new BufferedReader(new InputStreamReader(System.in));
        start();
    }

    public void processMsg(String msg){//客户端处理消息
        ta1.append(msg);
        ta1.append("\n");
    }

    public void run(){
        String str;

        try{
            while(true){
               str=in.readLine();
//               processMsg(str);
               if(str.equals("END"))
                    break;
               System.out.println(str);
               out.println("Server:has received...");
             }
        }
        catch(IOException e){
        }

        try{
            socket.close();
        }
        catch(IOException e){
        }
    }
/*
    public void getMessage(String str){
        ta1.append(str);
        ta1.append("\n");
    }
*/
    public static void main(String[] args)throws IOException{

        ServerSocket s=new ServerSocket(PORT);
        System.out.println("Server Started!");
        try{
            while(true){
                Socket socket=s.accept();
                try{
                    (new ServerSocketMult()).Mult(socket);
                    (new ServerSocketMult()).display();
                }
                catch(IOException e){
                    socket.close();
                }
            }

        }

        finally{
            s.close();
        }
    }
}

⌨️ 快捷键说明

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