📄 gbnserver.java
字号:
import java.io.*;
import java.net.*;
import java.lang.Math;
public class GbnServer{
public static void main(String args[]) throws Exception{
int n=0,d=0;
DatagramSocket clientSocket = new DatagramSocket(6789);
byte[] receiveData = new byte[100];
while(true){
DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length);
clientSocket.receive(receivePacket);
String received = new String(receivePacket.getData());
char b=received.charAt(0);
int i=b-'0';
if(Math.random()<0.7){
System.out.println("received the "+received);
if(i<=n){
n++;
System.out.println("**************so send ack "+i);
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
}
else{
if(n>0)
d=n-1;
System.out.println("but discard"+" and send ack "+d);
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
}
byte[] sendData=new byte[100];
received.getBytes(0,1,sendData,0);
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
DatagramPacket sendPacket =new DatagramPacket(sendData,sendData.length,IPAddress,port);
clientSocket.send(sendPacket);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -