📄 udpserver.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 + -