simplechatserver.java
来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 114 行
JAVA
114 行
import java.io.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
public class SimpleChatServer extends Applet implements ActionListener
{
protected static final String WELCOME_MSG =
"<Server>: Welcome to the chat server! " +
"If you're new, feel free to join in on the conversation!";
// 发送/接收多点传送消息的连接
protected MulticastConnection service;
// 内部服务器消息用的文本域
protected TextArea textArea;
// 终端服务器连接
protected Button terminate;
// 显示欢迎消息的计时器
protected Timer msgTimer;
public void init()
{
textArea = new TextArea("", 15, 80, TextArea.SCROLLBARS_VERTICAL_ONLY);
textArea.setEditable(false);
add(textArea);
terminate = new Button("Terminate Service");
terminate.addActionListener(this);
add(terminate);
String address = "224.0.0.21";
int port = MulticastConnection.DEFAULT_PORT;
// 建立连接
try
{
service = new MulticastConnection(address, port);
textArea.append("System Message: Java Chat Server online\n");
}
catch(Exception e)
{
textArea.append("System Error: Could not create Chat Server! " + e + "\n");
terminate.setEnabled(false);
}
msgTimer = null;
}
public void start()
{
if(! terminate.isEnabled()) return;
// 创建一个计时器来对新用户输出欢迎信息
TimerTask task = new TimerTask()
{
public void run()
{
synchronized(this)
{
service.send(WELCOME_MSG);
}
}
};
msgTimer = new Timer(true);
msgTimer.scheduleAtFixedRate(task, 1000, 60000);
// 将到来的消息添加到文本域中
synchronized(terminate)
{
while(terminate.isEnabled())
{
textArea.append(service.recv()+"\n");
}
}
// 终止欢迎服务
textArea.append("System Message: Java Chat Server going offline...\n");
service.disconnect();
msgTimer = null;
textArea.append("System Message: Java Chat Server connection terminated.\n");
}
public void actionPerformed(ActionEvent e)
{
terminate.setEnabled(false);
}
public static void main(String[] args)
{
// 创建一个SimpleChatServer并把它添加到Frame中
Applet a = new SimpleChatServer();
a.init();
Frame f = new Frame("Java Chat Server");
f.setSize(600, 320);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
f.add(a);
f.show();
a.start();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?