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

📄 gbnclient.java

📁 呵呵
💻 JAVA
字号:
import java.io.*;
import java.net.*;
import javax.swing.Timer;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class GbnClient{
	public static void main(String args[]) throws Exception
	{
	     DatagramSocket serverSocket = new DatagramSocket(9876);
	     boolean flag=false;
	     Timer[] tt =new Timer[5];
	     String[] send=new String[5];
	     int n=0;
	     for(int k=0;k<5;k++)
	         send[k]=k+" "+"packet";
	     InetAddress sendto = InetAddress.getByName("localhost");
	     byte[] receiveData = new byte[100];
	     byte[] sendData = new byte[100];
	     for(int k=0;k<5;k++)
	     {
	        sendData = send[k].getBytes();
	        DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,sendto,6789);
	       	serverSocket.send(sendPacket);
	        ActionListener taskPerformer =new myActionListener(serverSocket,sendPacket,k);
  	        tt[k]=new Timer(5000 ,taskPerformer); 
  	        tt[k].start();
  	        
         }

	     
	     while(flag==false){
	     	
	     	DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length );
	     	serverSocket.receive(receivePacket);
	     	String sentence=new String(receivePacket.getData());
	     	char b=sentence.charAt(0);	     	
	     	int i=b-'0';
	     	if(i<=n){
	     		n++;
	     		System.out.println("");
	     	    System.out.println("********receveived the ack "+i+"  and stop sending Packet["+i+"] ********");
	     	    System.out.println("");
	     	    System.out.println("");
	     	    System.out.println("");
	     	    tt[i].stop();
	        }
	        if (n==5){
	        	System.out.println("\n\n\n\nall the data is send ");
	        }
	   	}
	}
	     
}

class  myActionListener implements ActionListener {
	private DatagramSocket serverSocket;
	private DatagramPacket sendPacket;
	int k;
	public myActionListener(DatagramSocket serversocket,DatagramPacket sendpacket,int i)
	{
	    serverSocket = serversocket;
	    sendPacket= sendpacket;
	    k=i;
    }
     public void actionPerformed(ActionEvent e) {
       	System.out.println("Time out! \nPacket "+k+" does not receive reply, send again");
      	try{
      		
         	serverSocket.send(sendPacket);
       	}
        catch(Exception exception){}
     };
}  

⌨️ 快捷键说明

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