⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udpserver.java

📁 UDP即时通信软件
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
public class UDPServer extends JFrame{
	JLabel jLabel1=new JLabel("请输入IP地址:");
	JTextField jTextField1=null;
	JTextArea jTextArea1=null;
	JLabel jLabel2=new JLabel("请在下面输入要发送的信息:");
	JTextArea jTextArea2=null;
	JButton jButton1=new JButton("发送");
	JButton jButton2=new JButton("关闭");
	JScrollPane jScrollPane1;
	JScrollPane jScrollPane2;
	String chat;
	DatagramSocket ds;
	
	UDPServer(){
		try{
			ds=new DatagramSocket(2000);	
		}
		catch(Exception ex){
			ex.printStackTrace();
			}	
	}
	
	public void init(){
		setSize(500,400);
		setTitle("UDPServer");
		jTextField1=new JTextField("",25);
		jTextArea1=new JTextArea("",10,40);
		jTextArea1.setEditable(false);
		jTextArea2=new JTextArea("",5,40);
		jScrollPane1=new JScrollPane(jTextArea1);
		jScrollPane1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		jScrollPane2=new JScrollPane(jTextArea2);
		jScrollPane2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		JPanel jPanel1=new JPanel();
		jPanel1.add(jLabel1);
		jPanel1.add(jTextField1);
		jPanel1.add(jScrollPane1);
		jPanel1.add(jLabel2);
		jPanel1.add(jScrollPane2);
		jPanel1.add(jButton1);
		jPanel1.add(jButton2);
		getContentPane().add(jPanel1);
		
		jButton1.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
				{
					send();
			}
		});
		
		jButton2.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				close();
			}
		});
		
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setResizable(false);
		setVisible(true);
		}
		
		public void send(){
			start1();
			String strsend=jTextArea2.getText();
			chat=jTextArea1.getText()+strsend+"\n";
			jTextArea1.setText(chat);
			jTextArea2.setText("");
		}
		
		public void close(){
			System.exit(0);
		}
		
		public void start1()
		{
			byte[] buf;
			buf=jTextArea2.getText().getBytes();
			try{
				DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(jTextField1.getText()),3000);
				ds.send(dp);
			}
			catch(Exception ex){
				ex.printStackTrace();
			}
		}
		
		public void start2()
		{
			new Thread(new Runnable(){
				public void run()
				{
					byte buf[]=new byte[1024];
					DatagramPacket dp=new DatagramPacket(buf,1024);
					while(true)
					{
						try{
							ds.receive(dp);
							String str=new String(buf,0,dp.getLength());
							String strchat=jTextArea1.getText()+str+"\n";
							jTextArea1.setText(strchat);
						}
						catch(Exception e){
							e.printStackTrace();
						}
					}
				}
			}).start();
		}
		
		public static void main(String [] args)
		{
			UDPServer server=new UDPServer();
			server.init();
			server.start2();
		}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -