我想创建简单的下载加速器。带多线程的Java客户端/服务器文件传输问题
它是如何工作
- 服务器等待传入的连接。
- 客户端连接到服务器。
- 然后,服务器将文件大小发送到客户端并等待下载连接。
- 客户端获得文件大小,然后创建下载线程,并将这些线程连接到服务器。
- 服务器从每个线程获得连接后,服务器将等待来自线程的开始和结束偏移文件。
- 每个线程发送开始和结束偏移文件到服务器。
- 服务器得到偏移量后,服务器会将文件的一部分发送给线程。
- 每个线程都会读取和写入文件。例如,buffer.p01,buffer.p02,buffer.p03
- 客户端按顺序将所有文件合并为一个文件顺序。 (尚未实施)
我认为服务器端它工作正常,但客户端它有一些问题。
的问题是,如果我设置MAXTHREAD 1,它工作正常。但是,如果我设置了多个,它永远停留在某个地方。
这是服务器端的代码.. http://pastebin.com/TEakGB0c
,这是客户端代码与多线程 http://pastebin.com/wKhP7DxS
谢谢你。
听起来像一个死锁问题。没有任何代码,我们不能真正帮助? –
我已经在问题结尾处发布了代码。你能看到吗? –
啊我现在看到它。让我看看。 –