📄 server.java
字号:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class Server extends Frame{
TextField enterField;
TextArea displayArea;
ObjectOutputStream output;
ObjectInputStream input;
ServerSocket server;
Socket connection;
int counter = 1;
public Server(){
super("Server");
enterField = new TextField();
enterField.setEnabled(false);
enterField.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
sendData(event.getActionCommand());
}
}
);
add(enterField, BorderLayout.NORTH);
displayArea = new TextArea();
add(displayArea);
setSize(300,150);
setVisible(true);
}
public void runServer(){
try{
displayArea.setText("Waiting for connection\n");
server = new ServerSocket(5000,100);
while(true){
waitForConnection();
getStreams();
processConnection();
closeConnection();
++counter;
}
}
catch(EOFException eofException){
System.out.println("Client terminated connection");
}
catch(IOException ioException){
ioException.printStackTrace();
}
}
private void waitForConnection() throws IOException{
displayArea.setText("Waiting for connection\n");
connection = server.accept();
displayArea.append("Connection" + counter +
" received from: " +
connection.getInetAddress().getHostName());
}
private void getStreams()throws IOException{
output = new ObjectOutputStream(
connection.getOutputStream());
output.flush();
input= new ObjectInputStream(
connection.getInputStream());
displayArea.append("\nGot I/O streams\n");
}
private void processConnection() throws IOException{
String message = "SERVER>>> Connection successful";
output.writeObject(message);
output.flush();
enterField.setEnabled(true);
do{
try{
message = (String) input.readObject();
displayArea.append("\n" + message);
displayArea.setCaretPosition(
displayArea.getText().length());
}
catch(ClassNotFoundException classNotFoundException){
displayArea.append("\nUnknown object type received");
}
}while(! message.equals("CLIENT>>> TERMINATE"));
}
private void closeConnection() throws IOException{
displayArea.append("\nUser terminated connection");
enterField.setEnabled(false);
output.close();
input.close();
connection.close();
}
private void sendData(String message){
try{
output.writeObject("SERVER>>> " + message);
output.flush();
displayArea.append("\nSERVER>>> " + message);
}
catch(IOException ioException){
displayArea.append("\nError writing object");
}
}
public static void main(String args[]){
Server application = new Server();
application.runServer();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -