java socket多文件传输问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java socket多文件传输问题相关的知识,希望对你有一定的参考价值。

发送端有多个文件发送,需要一个一个的发送,接收端一个一个的接收,我现在只能传一个接一个,不知道多个的话怎么写,第一次做socket,求指教
我刚发现,我已经是一个一个的接收了,我发送端有五个文件,接收端五个都获取了,可都写入到一个文件里了,而不是五个,这个怎么办

用多线程,每个线程创建一个socket连接,每个socket连接负责传输一个文件,服务端的serversocket每次accept一个socket连接,也建立一个新线程,该线程负责对应socket的文件传输

每个文件写入完毕的时候关闭输出流,建新文件后重新建立输出流用于写入
参考技术A 参考思路:
1.先传文件名跟文件大小到 server。
2.开始传文件。
3.告诉server传完了。
4.客户端开始传下一个,重复123。
参考简单代码:
long fileLength;
int readLength;
long totalLength;
for (...)


// 读取文件名
// 读取文件长度保存到fileLength中
// 将totalLength置为0
while (1)

// 读取数据流,将实际读取的字节数保存在readLength中
totalLength += readLength;

if (totalLength >= fileLength) // 一个文件读取完成,break
// 这样就差不多了,不过这会把下一个文件的信息读到当前文件中来。
// 思路是fileLength - totalLength小于等于你设置的缓冲区长度时读取长度就是fileLength - totalLength


参考技术B 为什么看不到问题内容

以上是关于java socket多文件传输问题的主要内容,如果未能解决你的问题,请参考以下文章

Java如何实现多线程传输文件,就像迅雷下载一样,开十多个线程分段传送字节流?

关于用JAVA的SOCKET传输文件

java的socket传输文件,发送与接收文件的内容不一致

Socket: Java Client 与 C Server 传输数据中文乱码问题

Java基于TCP协议的Socket传输程序,乱码问题

Socket: Java Client 与 C Server 传输数据中文乱码问题