package six;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
public class UDPServer {
	private JFrame frame;
	private JTextField textField;
	private JTextField textField_1;
	DatagramSocket ds;
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					UDPServer window = new UDPServer();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
	/**
	 * Create the application.
	 */
	public UDPServer() {
		initialize();
	}
	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setTitle("服务器");
		frame.setBounds(100, 100, 466, 341);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel panel = new JPanel();
		frame.getContentPane().add(panel, BorderLayout.WEST);
		panel.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0)), "登录情况", TitledBorder.LEADING,
				TitledBorder.TOP, new Font("微软雅黑", Font.PLAIN, 12), new Color(59, 59, 59)));
		JTextArea textArea_1 = new JTextArea();
		textArea_1.setEditable(false);
		textArea_1.setLineWrap(true);
		textArea_1.setRows(13);
		textArea_1.setColumns(8);
		panel.add(textArea_1);
		JPanel panel_1 = new JPanel();
		frame.getContentPane().add(panel_1, BorderLayout.EAST);
		panel_1.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0)), "文件列表", TitledBorder.LEADING,
				TitledBorder.TOP, new Font("微软雅黑", Font.PLAIN, 12), new Color(59, 59, 59)));
		JTextArea textArea_2 = new JTextArea();
		textArea_2.setEditable(false);
		textArea_2.setRows(13);
		textArea_2.setLineWrap(true);
		textArea_2.setColumns(8);
		panel_1.add(textArea_2);
		JTextArea textArea = new JTextArea();
		textArea.setEditable(false);
		textArea.setLineWrap(true);
		textArea.setRows(10);
		textArea.setColumns(6);
		frame.getContentPane().add(textArea, BorderLayout.CENTER);
		textArea.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0)), "交流情况", TitledBorder.LEADING,
				TitledBorder.TOP, new Font("微软雅黑", Font.PLAIN, 12), new Color(59, 59, 59)));
		JPanel panel_2 = new JPanel();
		frame.getContentPane().add(panel_2, BorderLayout.NORTH);
		JLabel lblNewLabel = new JLabel("ip:");
		panel_2.add(lblNewLabel);
		textField = new JTextField();
		textField.setText("127.0.0.1");
		panel_2.add(textField);
		textField.setColumns(6);
		JLabel lblNewLabel_1 = new JLabel("port:");
		panel_2.add(lblNewLabel_1);
		textField_1 = new JTextField();
		textField_1.setText("1024");
		panel_2.add(textField_1);
		textField_1.setColumns(5);
		JButton btnNewButton = new JButton("启动");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				btnNewButton.setEnabled(false);
				try {
					// String ip = textField.getText();
					int cport = Integer.parseInt(textField_1.getText());
					// 创建数据接收码头,
					ds = new DatagramSocket(cport);
					
				} catch (IOException e1) {
					e1.printStackTrace();
				}
				new Thread(new Runnable() {
					@Override
					public void run() {
						try {
							while (true) {
								// 创建数据接收的数据缓冲区
								byte[] buf = new byte[1024];
								DatagramPacket dp = new DatagramPacket(buf, buf.length);
								// 接受来自端口1024的数据包,并存储在集装箱datagramPacket中:注意一旦服务器开启,就会自动监听3000端口
								// 如果没有数据,则进行阻塞
								ds.receive(dp);
								// 解析数据包中的信息
								String data = new String(dp.getData(), 0, dp.getLength());
								int sport = dp.getPort();
								// InetAddress ip = dp.getAddress();
								textArea.append("第" + sport + "号客户" + " 消息:" + data + "\n");
								//textArea_1.append("第" + sport + "号客户" + " 登录");
							}
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				}).start();
			}
		});
		panel_2.add(btnNewButton);
	}
}
 最近下载更多
最近下载更多
                
                zhendong     LV7
                2022年3月6日
            
            
        
                meyuso     LV9
                2022年2月22日
            
            
        
                你们的代码都是我的了     LV16
                2021年9月18日
            
            
        
                dengge123     LV14
                2021年6月6日
            
            
        
                lid7kay     LV3
                2021年5月23日
            
            
        
                piupiu1111     LV1
                2020年7月26日
            
            
        
                1791260721     LV1
                2020年6月30日
            
            
        
                15693621019     LV2
                2020年6月22日
            
            
        
                cheungf     LV1
                2020年6月3日
            
            
        
                smsbQAQ     LV1
                2020年5月17日
            
            
        
 
                 
                 
     最近浏览
最近浏览