1\不调试还真难说,可能性太多,播放器一般是独立的线程,想关闭它一般是通知的形式,但通知它并不意味马上就能关掉,可能它正忙着做什么,没功夫理你,至于什么造成的,就得看代码了.
2\它们的文件传输,肯定不太一样,我这里说一个思路.
S=服务器 c1=客户端1 c2=客户端2 现在c1要传文件给c2
首先c1和c2连接上s,s会记录它们的IP;
c1向s请求要给c2传送文件,s将这个请求转给c2 ;
c2选择同意(约定端口)或是接受,这个信息回传给s,s根据选择的结果来决定:同意,则将c1的IP(可能还会有验证码)发给c2,并将c2的IP\端口(可能还会有验证码)发给c1;
这时c1和c2就有做p2p连接的必要信息了,剩下的就是文件分块打包发送,设计协议支持断点续传,还要注意数据安全性什么的,总之到这里基本可以完成传文件的基本工作了,细节上要考虑的东西就在工程实践中慢慢解决吧.
当然,这个过程的一些信息还可以告诉s,可以增加一些功能.