看起来我编写的客户端-服务器应用程序确实可以工作,但是似乎并不是每次都会处理所有数据。
我正在 Eclipse 环境中的本地计算机上测试它。
Server:
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);
}
}
Client:
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);
}
}
我曾经在 while(true) 循环中使用 if else 来检查数据包长度是否小于 512 字节,以便它知道何时中断;
我以为有问题,但现在看来没问题,我只需等待几分钟,然后停止 Client.java 应用程序
文件确实传输了,但原始文件是 852kb,到目前为止我得到了 777, 800, 850,.. 但从来没有全部。