📄 receive.java
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.math.*;
import java.applet.*;
import java.net.*;
public class receive extends JApplet implements ActionListener,Runnable
{
/**组件*/
JPanel npanel,pp;
JScrollPane cpanel;
JButton b2;
JLabel lb;
JTextArea ta;
JTextField tf,ttt;
Thread thread;
/**网络*/
/**变量*/
public void init()
{
try
{
jbInit();
}
catch(Exception ee)
{
ee.printStackTrace();
}
}
public void jbInit()throws Exception
{
npanel=new JPanel(new GridLayout(2,1));
pp=new JPanel();
b2=new JButton("发送数据");
lb=new JLabel("发送数据帧:");
tf=new JTextField(10);
ta=new JTextArea(15,40);
pp.add(lb);
pp.add(tf);
pp.add(b2);
cpanel=new JScrollPane(ta);
ttt=new JTextField(20);
setLayout(new BorderLayout());
npanel.add(pp);
npanel.add(ttt);
add(npanel,BorderLayout.NORTH);
add(cpanel,BorderLayout.CENTER);
b2.addActionListener(this);
/****************************************/
thread=new Thread(this);
thread.start();
}
public void actionPerformed(ActionEvent e)
{
Object ar=e.getSource();
if(ar==b2)
{
byte b[]=tf.getText().trim().getBytes();
try
{
InetAddress address=InetAddress.getByName("127.0.0.1");
DatagramPacket data=new DatagramPacket(b,b.length,address,5678);
DatagramSocket mail=new DatagramSocket();
mail.send(data);
String msg=new String(data.getData(),0,data.getLength());
ta.append("已发送"+msg+"\n");
}
catch(Exception eee){
}
}
}
public void run()
{
DatagramPacket pack=null;
DatagramSocket mail=null;
byte b[]=new byte[8192];
try{
pack=new DatagramPacket(b,b.length);
mail=new DatagramSocket(1234);
}
catch(Exception e){}
while(true)
{
try{
mail.receive(pack);
String message=new String(pack.getData(),0,pack.getLength());
thread.sleep(1000);
ta.append("收到数据来自:"+pack.getAddress());
String str1=ran();
tf.setText(str1);
thread.sleep(1000);
if(str1.equals("ACK"))
{
ta.append("\n 收到数据是:"+message+"\n");
ta.setCaretPosition(ta.getText().length());
ta.append("已发送数据帧ACK");
new AboutDialog();
ttt.setText("本次接受的数据为:"+message);
}
else if(str1.equals("NAK"))
{
ta.append("\n 数据接收出错,请求重传 \n");
ta.setCaretPosition(ta.getText().length());
ta.append("已发送数据帧NAK");
}
else if(str1.equals(""))
{
ta.append("\n 未接受到数据 \n");
ta.setCaretPosition(ta.getText().length());
}
byte d[]=tf.getText().trim().getBytes();
try
{
InetAddress address=InetAddress.getByName("127.0.0.1");
DatagramPacket data=new DatagramPacket(d,d.length,address,5678);
DatagramSocket m=new DatagramSocket();
m.send(data);
String msg=new String(data.getData(),0,data.getLength());
}
catch(Exception eee){
}
}
catch(Exception ee){
}
}
}
public String ran()
{
double b;
String str="ACK";
b=Math.random();
if(b<=0.5)
{
str="ACK";
}
else if(b>0.5&&b<=0.75)
{
str="NAK";
}
else if(b>0.75&&b<1.0)
{
str="";
}
return str;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -