这是个简单的UDP socket程序。client端发送了50个包给server端,但是我的server端只接受到了9个包!!请朋友们帮我看看这程序,为什么会出现这样的情况,以及其解决方案~ 急~谢谢!:)
client: UDPC.java
Server: UDPS.java//UDPC.java
import java.io.*;
import java.net.*;
import java.util.Date;
public class UDPC {
public static void main(String [] args) throws Exception {
byte[] ip={(byte)127,(byte)0,(byte)0,(byte)1};
InetAddress serverIPAddress = InetAddress.getByAddress(ip);
int serverPort = 9876;
int i = 0;
DatagramSocket clientSocket = new DatagramSocket();
byte sendData[]=new byte[1024];
for(int a=0; a<50; a=a+1){ DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverIPAddress, serverPort);
clientSocket.send(sendPacket);
i = i + 1;
} //发送50个包
System.out.print( i + " packets have been sent to Server" + ‘\n‘); //打印发送了i个包,即50个包
clientSocket.close();
}
}
//UDPS.java
import java.io.*;
import java.net.*;
import java.util.Date;
public class UDPS {
public static void main(String[] args) throws Exception{
int serverPort = 9876;
DatagramSocket serverSocket = new DatagramSocket(serverPort);
int j = 0;
byte[] receiveData = new byte[1024]; DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
while(true){
serverSocket.receive(receivePacket);
j++;
System.out.println(j + " packets have been received from Client" + ‘\n‘); //打印出接受到了j个包
}
}
}
client: UDPC.java
Server: UDPS.java//UDPC.java
import java.io.*;
import java.net.*;
import java.util.Date;
public class UDPC {
public static void main(String [] args) throws Exception {
byte[] ip={(byte)127,(byte)0,(byte)0,(byte)1};
InetAddress serverIPAddress = InetAddress.getByAddress(ip);
int serverPort = 9876;
int i = 0;
DatagramSocket clientSocket = new DatagramSocket();
byte sendData[]=new byte[1024];
for(int a=0; a<50; a=a+1){ DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverIPAddress, serverPort);
clientSocket.send(sendPacket);
i = i + 1;
} //发送50个包
System.out.print( i + " packets have been sent to Server" + ‘\n‘); //打印发送了i个包,即50个包
clientSocket.close();
}
}
//UDPS.java
import java.io.*;
import java.net.*;
import java.util.Date;
public class UDPS {
public static void main(String[] args) throws Exception{
int serverPort = 9876;
DatagramSocket serverSocket = new DatagramSocket(serverPort);
int j = 0;
byte[] receiveData = new byte[1024]; DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
while(true){
serverSocket.receive(receivePacket);
j++;
System.out.println(j + " packets have been received from Client" + ‘\n‘); //打印出接受到了j个包
}
}
}
//UDPC.java
import java.io.*;
import java.net.*;
import java.util.Date;
public class UDPC {
public static void main(String [] args) throws Exception {
byte[] ip={(byte)127,(byte)0,(byte)0,(byte)1};
InetAddress serverIPAddress = InetAddress.getByAddress(ip);
int serverPort = 9876;
int i = 0;
DatagramSocket clientSocket = new DatagramSocket();
byte sendData[]=new byte[1024];
for(int a=0; a<50; a=a+1){ DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverIPAddress, serverPort);
// 隔一秒一次
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.err.println(e);
}
clientSocket.send(sendPacket);
i = i + 1;
} //发送50个包
System.out.print( i + " packets have been sent to Server" + ‘\n‘); //打印发送了i个包,即50个包
clientSocket.close();
}
}