本人想写一个桌面共享程序,但遇到些问题。我的思路是:首先,先用Robot类的getPixelColor方法取出桌面每个点的颜色然后,用Socket类建立c/s连接,将这些颜色传送到另一方。最后,接收颜色的那一方,将这些点画在Canvas上。
遇到的问题有:
1:使用getPixelColor一个个地取出桌面像素的颜色值,速度太慢,1024*768的分辨率大约需要6秒。2:将这些颜色值传送出去更慢,大概需要30秒3:画出这些点速度也很慢4:使用Socket好像不能在互联网间进行连接。Socket server = new Socket(InetAddress.getByName("192.168.0.1"), 6000)
这些问题希望各位能指点指点!!!

解决方案 »

  1.   

    lz厉害
    竟然用象素点来操作?
    个人认为
    先在对方电脑上把屏幕截图,然后把它处理成流传给本机
    本机接到流后又转化成图片显示出来  这样应该快一点吧
    另外 socket支持互联网见连接的,不然要来做什么啊
    你可能是在局域网里面的,所以看到的是对内的ip,外面的机当然就识别不了你的ip了
      

  2.   

    本地抓图后压缩成jpeg格式字节流传到接收端再解码显示比较实际
      

  3.   

    Socket server = new Socket(InetAddress.getByName("192.168.0.1"), 6000)
    楼主,你的这个地址"192.168.0.1"是私有地址,只能在局域网里用,当然不能通过互连网了
    你要想通过互连网就要申请一个公有ip地址,一般要交一定费用,不过不是很多,这样 ,就行了
      

  4.   

    截屏
    Robot
    public BufferedImage createScreenCapture(Rectangle screenRect)
      

  5.   

    截屏后怎么使用socket将图片传出去呢?图片能获得数据流吗?