Казалось бы, клиент-серверное приложение, которое я написал, работает, однако кажется, что не все данные обрабатываются каждый раз.
Я тестирую его на локальной машине в Eclipse env.
Сервер:
private void sendData() throws Exception
{
DatagramPacket data = new DatagramPacket(outgoingData, outgoingData.length, clientAddress, clientPort);
InputStream fis = new FileInputStream(responseData);
int a;
while((a = fis.read(outgoingData,0,512)) != -1)
{
serverSocket.send(data);
}
}
Клиент:
private void receiveData() throws Exception
{
DatagramPacket receiveData = new DatagramPacket(incomingData, incomingData.length);
OutputStream fos = new FileOutputStream(new File("1"+data));
while(true)
{
clientSocket.receive(receiveData);
fos.write(incomingData);
}
}
Раньше у меня был if if в цикле while (true), чтобы проверить, меньше ли длина пакета, чем 512 байт, чтобы он знал, когда прервать;
Я думал, что есть проблема с этим, но кажется, что сейчас все в порядке, я просто подожду несколько минут и затем остановлю приложение Client.java
Файл передается, но исходный файл имеет размер 852 КБ, и до сих пор я получил 777, 800, 850, .. но никогда не все из них.