📄 server1.java
字号:
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
public class server1 extends JFrame implements ActionListener{
ServerSocket serversock=null;
Socket sock=null;
DataOutputStream out;
DataInputStream in;
JButton b1=null;
JButton b2=null;
JButton b3=null;
JTextField t1=null;
JTextField t2=null;
JTextField t3=null;
JTextArea text=null;
public server1(){
JFrame Cframe=new JFrame("server");
Container ContentPane=Cframe.getContentPane();
Box baseBox=Box.createVerticalBox();
ContentPane.add(baseBox);
Box box1=Box.createHorizontalBox();
box1.setBorder(BorderFactory.createTitledBorder("本服务器信息"));
baseBox.add(box1);
JLabel l1=new JLabel("IP:");
l1.setMaximumSize(new Dimension(20,20));
JLabel l2=new JLabel("端口号:");
l2.setMaximumSize(new Dimension(20,20));
t1=new JTextField(16);
t2=new JTextField("2006",16);
box1.add(l1);
box1.add(t1);
box1.add(Box.createHorizontalStrut(30));
box1.add(l2);
box1.add(t2);
Box box2=Box.createHorizontalBox();
baseBox.add(box2);
b1=new JButton("开始侦听");
b1.setMaximumSize(new Dimension(100,100));
b2=new JButton("断开连接");
b2.setMaximumSize(new Dimension(100,100));
b1.addActionListener(this);
b2.addActionListener(this);
box2.add(Box.createHorizontalStrut(200));
box2.add(b1);
box2.add(Box.createHorizontalStrut(100));
box2.add(b2);
box2.add(Box.createHorizontalStrut(200));
Box box3=Box.createHorizontalBox();
box3.setBorder(BorderFactory.createTitledBorder("聊天记录"));
baseBox.add(box3);
text=new JTextArea(10,50);
text.setLineWrap(true);
text.setWrapStyleWord(true);
box3.add(new JScrollPane(text));
Box box4=Box.createVerticalBox();
box4.setBorder(BorderFactory.createTitledBorder("编写服务器讯息"));
baseBox.add(box4);
t3=new JTextField(50);
b3=new JButton("发送");
b3.setAlignmentX(Component.CENTER_ALIGNMENT);
b3.setMaximumSize(new Dimension(100,100));
b3.addActionListener(this);
box4.add(t3);
box4.add(b3);
try{
InetAddress myname=InetAddress.getLocalHost();
t1.setText(myname.getHostAddress());
}catch(Exception ee){}
Cframe.pack();
Cframe.setVisible(true);
Cframe.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
try{
out.writeUTF("bye");
}catch(Exception ee){}
try{
out.close();
in.close();
sock.close();
serversock.close();
dispose();
System.exit(0);
}catch(Exception ee) {}
}
});
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==b1){
//start
String str=new String();
int port;
str=t2.getText();
port=(int)Integer.parseInt(str);
try{
serversock=new ServerSocket(port);
text.append("服务器启动侦听!\n");
}catch(IOException ee){
JOptionPane.showMessageDialog(null,"服务器启动失败!");
return;
}
try{
sock=serversock.accept();
InetAddress ClientAddress=sock.getInetAddress();
text.append("Client "+"connected from:"+ClientAddress.toString()+".\n");
OutputStream os=sock.getOutputStream();
out=new DataOutputStream(os);
InputStream is=sock.getInputStream();
in=new DataInputStream(is);
out.writeUTF("祝贺连接成功!");
Communion th=new Communion(this);
th.start();
}catch(IOException ee) {}
}
if (e.getSource()==b2){
try{
out.writeUTF("bye");
}catch(Exception ee) {}
try{
out.close();
in.close();
sock.close();
serversock.close();
text.append("已断开连接!\n");
}catch(Exception ee) {text.append("未连接或断开连接失败!\n");}
}
if (e.getSource()==b3){
//send;
String str3=new String();
str3=t3.getText();
try{
out.writeUTF(str3);
text.append("server:"+str3+"\n");
t3.setText("");
}catch(Exception ee) {
text.append("发送失败!\n");
t3.setText("");}
}
}
public static void main(String args[]) {
server1 S=new server1();
}
}
class Communion extends Thread{
server1 fp;
Communion(server1 fp){
this.fp=fp;
}
public void run(){
String msg=null;
while(true){
try{
msg=fp.in.readUTF();
if(msg.equals("bye")){
fp.text.append("客户机已经停止!\n");
break;
}
fp.text.append("client:"+msg+"\n");
}catch(Exception ee) {break;}
}
try{
fp.out.close();
fp.in.close();
fp.sock.close();
fp.serversock.close();
}catch(Exception ee) {}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -