Я пишу клиент-серверное приложение, которое будет отправлять XML-файл с клиента на сервер. У меня проблема с отправкой больших данных. Я заметил, что сервер может получить максимум 1460 байт. Когда я отправляю файл с более чем 1460 байтами, сервер получает только первые 1460 байтов и даже больше. В результате я получаю незавершенный файл. Вот мой код:
отправка клиента:
public void sendToServer(File file) throws Exception
{
OutputStream output = sk.getOutputStream();
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[1024*1024];
int bytesRead = 0;
while((bytesRead = fileInputStream.read(buffer))>0)
{
output.write(buffer,0,bytesRead);
}
fileInputStream.close();
}
Сервер получает:
public File getFile(String name) throws Exception
{
File file=null;
InputStream input = sk.getInputStream();
file = new File("C://protokolPliki/" + name);
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[1024*1024];
int bytesReceived = 0;
while((bytesReceived = input.read(buffer))>0) {
out.write(buffer,0,bytesReceived);
System.out.println(bytesReceived);
break;
}
return file;
}
Кто-нибудь знает, что не так с этим кодом? Спасибо за любую помощь.
EDIT:
Ничего не помогает :(. Я гуглю об этом, и я думаю, что его значение, связанное с TCP MSS, равно 1460 байтов.