Java JxtaServerSocket问题

Java JxtaServerSocket问题,java,p2p,jxta,Java,P2p,Jxta,我正在使用JxtaServerSocket(接收方)和JxtaSocket(发送方)跨局域网传输文件。首先,我发送的文件名大于其大小。之后,我等待offset开始从它发送文件。如果我在本地(在一台计算机上)启动程序的两个部分,它可以正常工作,但在不同计算机的情况下,它不工作: 05.04.2011 13:59:03 net.jxta.logging.Logging logCheckedWarning WARNING: Line 557 net.jxta.socket.JxtaServerSo

我正在使用
JxtaServerSocket
(接收方)和
JxtaSocket
(发送方)跨局域网传输文件。首先,我发送的文件名大于其大小。之后,我等待offset开始从它发送文件。如果我在本地(在一台计算机上)启动程序的两个部分,它可以正常工作,但在不同计算机的情况下,它不工作:

05.04.2011 13:59:03 net.jxta.logging.Logging logCheckedWarning  
WARNING: Line 557 net.jxta.socket.JxtaServerSocket.pipeMsgEvent()
backlog queue full, connect request dropped  
05.04.2011 13:59:03 net.jxta.logging.Logging logCheckedInfo
INFO: Line 115 net.jxta.impl.pipe.InputPipeImpl.<init>()
Creating InputPipe for urn:jxta:uuid-C5D686304E5A4916A943F1F4D0FD649892EAC01ED6644C4DA82ADA0A22F4C7B004 of type JxtaUnicast with listener  
05.04.2011 13:59:03 net.jxta.logging.Logging logCheckedInfo  
INFO: Line 356 net.jxta.socket.JxtaSocket.<init>()
New socket : net.jxta.socket.JxtaSocket@10175206[uuid-C5D686304E5A4916A943F1F4D0FD64988A0B5A3B55C14246824C9A3325E18D2204/uuid-C5D686304E5A4916A943F1F4D0FD649892EAC01ED6644C4DA82ADA0A22F4C7B004] OPEN : i  R  B  C   
05.04.2011 13:59:03 org.mopsproject.core.net.transfer.FileReceiver run  
INFO: New socket connection accepted  
05.04.2011 13:59:03 org.mosprpoject.core.net.transfer.FileReceiver.ConnectionHandler ConnectionHandler(JxtaSocket socket)  
INFO: Method started.  
05.04.2011 13:59:03 org.mopsproject.core.net.transfer.FileReceiver run  
INFO: Waiting for connections  
05.04.2011 13:59:03 org.mopsproject.core.net.transfer.FileReceiver getTargetFile  
INFO: filename : 550e8400-e29b-41d4-a716-446655441234.xml  
05.04.2011 13:59:03 net.jxta.logging.Logging logCheckedInfo  
INFO: Line 1137 net.jxta.impl.util.pipe.reliable.ReliableOutputStream$Retransmitter.<init>()   
STARTED Reliable Retransmitter, RTO = 60000  
05.04.2011 13:59:04 org.mosprpoject.core.net.transfer.FileReceiver.ConnectionHandler sendAndReceiveData(JxtaSocket socket)  
SEVERE: Read timeout reached  
       java.net.SocketTimeoutException: Read timeout reached
    at net.jxta.impl.util.pipe.reliable.ReliableInputStream.dequeueMessage(ReliableInputStream.java:569)
    at net.jxta.impl.util.pipe.reliable.ReliableInputStream.local_read(ReliableInputStream.java:702)
    at   net.jxta.impl.util.pipe.reliable.ReliableInputStream.read(ReliableInputStream.java:309)
    at   java.io.DataInputStream.readFully(Unknown Source)
    at java.io.DataInputStream.readLong(Unknown Source)
    at org.mopsproject.core.net.transfer.FileReceiver$ConnectionHandler.sendAndReceiveData(FileReceiver.java:310)
    at org.mopsproject.core.net.transfer.FileReceiver$ConnectionHandler.run(FileReceiver.java:409)
    at java.lang.Thread.run(Unknown Source)
05.04.2011 13:59:03 net.jxta.logging.logging logCheckedWarning
警告:第557行net.jxta.socket.JxtaServerSocket.pipeMsgEvent()
积压队列已满,连接请求已丢弃
05.04.2011 13:59:03 net.jxta.logging.logging logCheckedInfo
信息:第115行net.jxta.impl.pipe.InputPipeImpl.()
创建jxta:uuid-C5D686304E5A4916A943F1F4D0FD649892 EAC01ED6644C4DA82ADA0A22F4C7B004类型JxtaUnicast的带侦听器的输入管道
05.04.2011 13:59:03 net.jxta.logging.logging logCheckedInfo
信息:第356行net.jxta.socket.JxtaSocket.()
新套接字:net.jxta.socket。JxtaSocket@10175206[uuid-C5D686304E5A4916A943F1F4D0FD64988A0B5A3B55C14246824C9A3325E18D2204/uuid-C5D686304E5A4916A943F1F4D0FD649892EAC01ED6644C4DA82ADA0A22FC47B004]打开:i R B C
05.04.2011 13:59:03 org.mopsproject.core.net.transfer.FileReceiver运行
信息:已接受新的套接字连接
05.04.2011 13:59:03 org.mosprpoject.core.net.transfer.FileReceiver.ConnectionHandler ConnectionHandler(JxtaSocket套接字)
信息:方法已启动。
05.04.2011 13:59:03 org.mopsproject.core.net.transfer.FileReceiver运行
信息:正在等待连接
05.04.2011 13:59:03 org.mopsproject.core.net.transfer.FileReceiver getTargetFile
信息:文件名:550e8400-e29b-41d4-a716-446655441234.xml
05.04.2011 13:59:03 net.jxta.logging.logging logCheckedInfo
信息:行1137 net.jxta.impl.util.pipe.reliable.ReliableOutputStream$重新传输器。()
启动可靠重传器,RTO=60000
05.04.2011 13:59:04 org.mosprpoject.core.net.transfer.FileReceiver.ConnectionHandler发送和接收数据(JxtaSocket套接字)
严重:已达到读取超时
java.net.SocketTimeoutException:已达到读取超时
net.jxta.impl.util.pipe.reliable.ReliableInputStream.dequeueMessage(ReliableInputStream.java:569)
net.jxta.impl.util.pipe.reliable.ReliableInputStream.local_读取(ReliableInputStream.java:702)
net.jxta.impl.util.pipe.reliable.ReliableInputStream.read(ReliableInputStream.java:309)
在java.io.DataInputStream.readFully(未知源)
位于java.io.DataInputStream.readLong(未知源)
位于org.mopsproject.core.net.transfer.FileReceiver$ConnectionHandler.sendAndReceiveData(FileReceiver.java:310)
位于org.mopsproject.core.net.transfer.FileReceiver$ConnectionHandler.run(FileReceiver.java:409)
位于java.lang.Thread.run(未知源)
有一件有趣的事,接收者只得到文件名,其他什么都没有。 我想知道发生这种奇怪事情的原因是什么?
另一方面,我想这可能是JXTA的错。

我在JXSE/JXTA电子邮件列表上与尤金进行了讨论。他的一个堆栈跟踪似乎表明他在一个需要TCP/HTTP连接的场景中使用了一个临时配置(只使用多播)。我建议改用EDGE/RDV配置。从那以后,我没有收到反馈。我假设这解决了他的问题…

您使用的是哪个版本的JXTA?如果应用程序在单个设备上工作,那么问题很可能是a)设备或防火墙的配置,或者b)处理JXTA套接字的代码。你能分享你正在使用的代码吗?