📄 send.java
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.math.*;
import java.applet.*;
import java.io.*;
import java.net.*;
public class send extends JApplet implements ActionListener,Runnable
{
/**组件*/
JPanel npanel;
JScrollPane cpanel;
JButton b1,b2;
JLabel lb;
JTextArea ta;
JTextField tf;
/**网络*/
/**变量*/
Thread thread;
int i,j,len;
String neirong;
String shuju[],shujuzhen[];
boolean st=false;
public void init()
{
try
{
jbInit();
}
catch(Exception ee)
{
ee.printStackTrace();
System.out.print("111");
}
}
public void jbInit()throws Exception
{
npanel=new JPanel();
b1=new JButton("发送");
b2=new JButton("断开");
lb=new JLabel();
ta=new JTextArea(15,40);
cpanel=new JScrollPane(ta);
tf=new JTextField(20);
setLayout(new BorderLayout());
npanel.add(tf);
npanel.add(b1);
npanel.add(b2);
// cpanel.add(ta);
add(npanel,BorderLayout.NORTH);
add(cpanel,BorderLayout.CENTER);
b1.addActionListener(this);
b2.addActionListener(this);
thread=new Thread(this);
shuju=new String[100];
shujuzhen=new String[100];
for(i=0;i<100;i++)
{
shuju[i]=new String();
shujuzhen[i]=new String();
}
thread.start();
}
public void run()
{
show();
DatagramPacket pack=null;
DatagramSocket mail=null;
byte b[]=new byte[8192];
try{
pack=new DatagramPacket(b,b.length);
mail=new DatagramSocket(5678);
}
catch(Exception e){}
while(true)
{
// if(st==false)
// {
try{
mail.receive(pack);
String message=new String(pack.getData(),0,pack.getLength());
ta.append("\n 接收数据帧为:"+message+"\n");
ta.setCaretPosition(ta.getText().length());
time tt=new time();
tt.start();
if(message.equals("ACK"))
{
tt.stop();
ta.append("发送成功\n");
}
else if(message.equals("NAK"))
{
tt.stop();
ta.append("发送失败,正在重新发送...\n");
thread.sleep(1000);
fasong fs1=new fasong();
fs1.start();
thread.sleep(5000);
byte d[]=tf.getText().trim().getBytes();
try
{
InetAddress address=InetAddress.getByName("127.0.0.1");
DatagramPacket data=new DatagramPacket(d,d.length,address,1234);
DatagramSocket m=new DatagramSocket();
m.send(data);
String msg=new String(data.getData(),0,data.getLength());
thread.sleep(1000);
ta.append("已发送"+msg+"\n");
// thread.sleep()
}
catch(Exception eee){
}
}
else if(message.equals(""))
{
thread.sleep(10000);
ta.append("发送数据丢失,正在重新发送...\n");
thread.sleep(1000);
fasong fs1=new fasong();
fs1.start();;
thread.sleep(5000);
byte d[]=tf.getText().trim().getBytes();
try
{
InetAddress address=InetAddress.getByName("127.0.0.1");
DatagramPacket data=new DatagramPacket(d,d.length,address,1234);
DatagramSocket m=new DatagramSocket();
m.send(data);
String msg=new String(data.getData(),0,data.getLength());
thread.sleep(1000);
ta.append("已发送"+msg+"\n");
}
catch(Exception eee){
}
}
}
catch(Exception ee){
}
// }
// else if(st=true)
// {
// }
}
/*try
{
j=0;
while(len!=0)
{
ta.append("已发送数据:"+shuju[j]+"\n");
ta.append("返回:ack\n");
j++;
len--;
Thread.sleep(1500);
}
}
catch(Exception ex)
{
ex.printStackTrace();
}*/
}
//public void start()
// {
// thread=new Thread(this);
// thread.start();
// }
public void actionPerformed(ActionEvent e)
{
Object ar=e.getSource();
if(ar==b1)
{
// neirong=tf.getText();
// len=neirong.length();
// for(i=0;i<neirong.length();i++)
// {
// shuju[i]=neirong.substring(i,i+1);
// }
byte b[]=tf.getText().trim().getBytes();
try
{
InetAddress address=InetAddress.getByName("127.0.0.1");
DatagramPacket data=new DatagramPacket(b,b.length,address,1234);
DatagramSocket mail=new DatagramSocket();
fasong fs=new fasong();
fs.start();
thread.sleep(5000);
mail.send(data);
String msg=new String(data.getData(),0,data.getLength());
ta.append("已发送"+msg+"\n");
// thread.sleep()
}
catch(Exception eee){
}
// this.start();
}
else if(ar==b2)
{
this.destroy();
}
}
public String ran()
{
double b;
String str="ACK";
b=Math.random();
if(b<=0.7)
{
str="ACK";
}
else if(b>0.7&&b<1.0)
{
str="NAK";
}
return str;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -