📄 server.java
字号:
package edu.ustb.kang40550590.db;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.EOFException;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Calendar;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.io.*;
public class Server extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
public Server(String title)
{
super(title);
initialize();
}
private JTextField textField;
private JTextArea textArea;
private void initialize()
{ textField=new JTextField(25);
textField.setEnabled(false);
textField.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
sendMessage(event.getActionCommand());
}
});
textArea=new JTextArea();
Container container=getContentPane();
JPanel p=new JPanel();
p.add(new JLabel("信息:"));
p.add(textField);
container.add(p,BorderLayout.SOUTH);
container.add(new JScrollPane(textArea),BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(350,200);
setVisible(true);
}
public void run()
{
textArea.setText("等待客户端的连接...");
try
{
server=new ServerSocket(9000);
while(true)
{
init();
service();
}
}
catch (EOFException eofException)
{
System.out.println("客户端终止连接");
}
catch (IOException ioException)
{
System.out.println("I/O异常");
}
}
private ServerSocket server;
private ObjectOutputStream outPutStream;
private ObjectInputStream inPutStream;
private Socket clientConnection;
private void init()throws IOException
{
clientConnection=server.accept();
textArea.append("连接来自"+clientConnection.getInetAddress().getHostName());
outPutStream=new ObjectOutputStream(clientConnection.getOutputStream());
outPutStream.flush();
inPutStream=new ObjectInputStream(clientConnection.getInputStream());
}
private void service() throws IOException
{
String message="建立连接成功!";
outPutStream.writeObject(message);
outPutStream.flush();
textField.setEnabled(true);
do
{
try
{
message=(String) inPutStream.readObject();
textArea.append("\n客户端消息 "+message);
textArea.setCaretPosition(textArea.getText().length());
}
catch(ClassNotFoundException classNotfoundException)
{
textArea.append("\n接收消息出错");
}
}
while(true);
}
private void sendMessage(String message)
{
Calendar time=Calendar.getInstance();
try
{
outPutStream.writeObject(new String(time.getTime().toString().getBytes(),10,10)+":\n"+message);
outPutStream.flush();
textArea.append("\n服务器消息 "+new String(time.getTime().toString().getBytes(),10,10)+":\n"+message);
textField.setText("");
}
catch(IOException ioException)
{
textArea.append("\n发送消息时出错");
}
}
public static void main(String[] args)
{
Server server=new Server("服务器端");
server.run();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -