精华内容
下载资源
问答
  • 局域网屏幕共享_局域网电脑屏幕共享
    2020-10-20 05:11:15

    37a4a68c-0c12-eb11-8da9-e4434bdf6706.png

    电脑投屏_共享内网信息

    AWIND奇机无线投屏器,电脑投屏_共享内网信息新功能正式上线,当我们将电脑通过投屏盒子投屏到大屏幕上的时候,局域网内的其他智能设备(手机、平板、电脑)也能接受画面了,真正实现电脑投屏_共享内网信息。

    详细情况如下:

    1、将投屏盒子通过HDMI线与大屏幕连接,这时候大屏幕上显示的是投屏盒子的待机画面;

    2、给投屏盒子插上网线,进入公司局域网;

    3、电脑投屏到大屏幕,这使大屏幕的内容显示为电脑画面;

    4、局域网内的其他设备接收电脑信息,做到同步显示(其他设备需要安装接收端软件,或者打开浏览器输入接收端IP地址)。

    我们测试的时候,是用了8个其他的设备进行接收,效果还算不错。

    强调一下,接收端一定得是智能设备,因为接收端需要满足两个条件:能连接网络(局域网),能安装接收端APP或者能打开浏览器。发送端可以是手机、平板、笔记本、电脑中的任何一种,支持4台设备同时投屏,然后同时共享。

    AWIND奇机技术部经理表示:单独的会议室投屏、多媒体教室投屏,我们积累了17年的经验,基本上都已经能够满足需求,接下来我们需要应对的是复杂的会议室场景和用户各种的奇思妙想方案。

    AWIND奇机在线技术向全网的无线投屏朋友发出邀请函,不管您是无线投屏业内人士还是有需要用到无线投屏的工作人员,都可以与我们的在线技术进行讨论。AWIND奇机的企业宗旨是“一切从用户的角度出发”,集思广益才能更好的发展。

    更多相关内容
  • VNC-5.1.1-Windows.rar 局域网共享屏幕软件,高清低延迟 ,给有需要的人。欢迎下载。
  • 局域网屏幕共享

    2018-10-31 09:55:52
    在课堂上实时屏幕共享,使得学生可以通过自己的电脑看到老师的电脑
  • 它与某些查看器计算机(用户)共享多台计算机的 Windows 桌面屏幕。 查看器可以控制鼠标和键盘。 它只是一个编程示例,请勿在生产环境中使用该软件! 它使用 Microsoft 远程桌面 API RDPCOMAPILib 和 ...
  • 第一步:win7局域网屏幕共享(本机) 1. 在局域网中的一台Win7电脑桌面上,右击计算机图标,选择下拉菜单中的“属性”。 2. 弹出窗口中选择“高级系统设置”, 3. 弹出的窗口中点击“远程”选项卡,勾选“允许...

    第一步:win7局域网屏幕共享(本机)

    1. 在局域网中的一台Win7电脑桌面上,右击计算机图标,选择下拉菜单中的“属性”。

    2. 弹出窗口中选择“高级系统设置”,

    3. 弹出的窗口中点击“远程”选项卡,勾选“允许远程协助连接这台计算机

    4. 远程桌面栏,选择“允许运行任意版本远程度桌面的计算机连接”。

    局域网桌面共享

    第二步:win7局域网屏幕共享(另外电脑连接)

    另一台电脑上按win + R键,进入运行对话框,输入mstsc,弹出远程桌面连接对话框,输入屏幕共享电脑的IP地址,点击连接共享对方屏幕。

     

    windows局域网屏幕共享

    这样就实现了桌面共享,但是这样的共享方式有局限性,不同计算机的操作方式不同,或者有些计算机会不支持。比如mac和windows局域网共享屏幕怎么实现?肯定是不可以用上述win7局域网屏幕共享的方法。win10能用的局域网屏幕共享方法又是什么?

    mac和windows局域网共享屏幕的方法和上述的理论是一样的,都是在本机进行对应设置,如果是windows还需要下载第三方局域网屏幕共享软件,操作比较复杂,不够便捷。

    所以,我们需要找一个支持全平台全终端支持的局域网桌面共享的方法,并且上述win7局域网屏幕共享方法仅仅是单纯的屏幕共享,无法实现远程协同办公。没有办法支持远程同屏批注等功能,切换演示者也是比较麻烦,需要重新设置电脑,不同的参会终端也会有很大的限制性。

    连通宝屏幕共享软件全平台支持,全终端支持局域网电脑屏幕同步显示,下载连通宝屏幕共享软件,即可实现win7局域网屏幕共享,mac和windows局域网共享屏幕,win10局域网屏幕共享等跨终端局域网同屏分享。

    局域网电脑屏幕同步显示

     

    展开全文
  • HTScreen局域网屏幕共享工具

    热门讨论 2013-03-22 10:46:29
    非常实用的屏幕共享工具,无需安装,主机打开HTServer,其他打开客户端,就可以在一个局域网下共享屏幕内容,非常适合上课
  • 一款好用的局域网屏幕共享软件 !
  • 傻瓜式屏幕共享软件,只有一个单文件,主机点第一个选项,出现本机ip,查看端点击第二个选项,输入共享主机ip即可。适合应急团体会议,或查看屏幕写作,不需要连接互联网。
  • android开发之局域网屏幕共享+提取文字,因为是新手,所以代码很烂,有错误或者不懂可以和我说,我会去改和跟你说的
  • 该软件可用于 远程、局域网等网络环境下的电脑屏幕共享,拥有极快的速度,且绿色安全好用,还很小巧
  • 局域网屏幕共享软件

    2018-04-13 12:26:05
    局域网屏幕共享软件 局域网屏幕共享软件 局域网屏幕共享软件 局域网屏幕共享软件 局域网屏幕共享软件 局域网屏幕共享软件
  • 局域网内实现屏幕共享(服务器+客户端),局域网内无需端口映射
  • 基于java的远程屏幕共享小程序,包括客户端和服务器程序,仅供学习参考
  • InletexEMC是国外制作的一款小巧的屏幕共享软件,这里提供的是纯绿色免费的经典版本,新版已经开始收费了 软件特点 永久免费:它是完全免费的!对企业免费!对个人免费! 绿色软件:无需安装,不对系统产生垃圾。 点对...
  • 局域网屏幕共享软件InletexEMC
  • 简单的winform屏幕共享,实现服务端和多个客户端之间的屏幕共享,自动获取局域网ip和端口号,详细代码注释,希望对stocket网络通信的小伙伴有帮助
  • 局域网中实现桌面共享,适合上班族的项目组在一起通过桌面共享开小型会议
  • InletexEMC是国外制作的一款小巧的屏幕共享软件,这里提供的是纯绿色免费的经典版本,新版已经开始收费了,这个我找了很久才找到。
  • 免root兼容所有android屏幕实时共享及远程控制
  • 点对点传输:它是点对点传输的,支持LAN/WAN,可以在私人网络、局域网、互联网中使用,支持多人同时共享同一电脑屏幕。 容易使用:不管是主机还是客户机,都是同一个执行程序;任何人都可以做主机,任何人也可以做...
  • 把任意设备变成你的第二屏幕https://www.zhihu.com/video/1233751670561415168| 有时候我们需要两台甚至多台显示器才能有更高的... |------如何把手机、平板或笔记本变成你的电脑第二屏幕。使用 Spacedesk , 你可以...

    bc00b6f163f0b79d0a973a76af1ad848.png
    f9db7345ab821b72f5b218ae92abec36.png
    把任意设备变成你的第二屏幕https://www.zhihu.com/video/1233751670561415168

    | 有时候我们需要两台甚至多台显示器才能有更高的工作效率,比如视频剪辑、资料搜集、内容校对、代码编写……现在,你可以试试一款新的扩展应用,帮你把手机、电脑、平板等等变成你的第二屏幕。 |

    ------

    如何把手机、平板或笔记本变成你的电脑第二屏幕。

    使用 Spacedesk , 你可以把局域网内的其他设备变成你的第二、第三、第四甚至更多屏幕。

    首先在你的设备上下载 Spacedesk,主电脑请在 Download 当中下载“FOR WINDOWS PRIMARY PC”,目前暂时没有 Mac 系统客户端。安装完成之后,你的电脑右下角有一个极小的任务图标。点击可查看当前的系统数据,比如连接的网络、IP 地址,右边显示正在连接的设备。

    26ed5dca49750977035c818089fce0a4.png

    局域网内的其他设备请下载安装 Spacedesk “FOR SECONDARY MACHINE”,安装好之后,即可看到连接中的主电脑。点击,然后自动连接。主电脑客户端上显示已经连接。这样你就可以和平时设置投影仪或多显示器一样操作了。

    使用 Windows+P,打开投影选项,选择复制或扩展;桌面单击右键,点击显示设置,选择对应的显示器,分别设置适合的分辨率。

    107bb78fc7c8442d33ff4f3df8b0c605.png

    你也可以直接在客户端上点击三个点,选择 On 或 Off 来开关。Spacedesk 由于基于局域网连接,并且软件本身还在 beta 版本,所以有些许延迟。但从高效生活的角度来看,我们认为意义重大

    最后,你可以直接在 Spacedesk 官方下载该应用,安卓无法跳转谷歌商店可以点击这里文末下载

    更多资源技欢迎访问我们的官网 topbook.cc

    展开全文
  • 免安装,体积小,局域网高清屏幕分享软件,适合教学使用。 免安装,体积小,局域网高清屏幕分享软件,适合教学使用。
  • 局域网屏幕共享与反向控制APP,仿QQ远程协助功能,能够在局域网内用一台手机控制另一台手机。


    前言

    之前用了一下QQ电脑版的远程协助,发现这个功能很方便实用,于是就想开发一款类似功能的APP,无奈本人只会一点点Android和Java,开发过程中爬了很多坑,但是经过不懈努力,终于把基本功能实现了。


    一、功能介绍

    1.屏幕共享

    这个APP主要有屏幕共享和反向控制两个功能。屏幕共享功能的实现需要两台手机,一台手机作为服务端,共享屏幕;另一台手机做客户端,显示屏幕。服务端与客户端需要在同一局域网或热点连接。服务端主要是通过MediaProjection实时截屏,通过TCP把图片数据发送给客户端;客户端则把TCP接收的图片数据通过SurfaceView渲染显示。

    2.反向控制

    反向控制的功能主要是结合了ADB。这个功能的实现需要手机服务端先开启 开发者模式及USB调试,然后用USB连接电脑端。共享屏幕时,在电脑端运行Python或其他语言编写的脚本,客户端的SurfaceView会侦听用户的触摸事件,并通过服务端TCP传输给电脑端,电脑端则发送ADB命令给服务端,从而实现客户端反向控制服务端的功能。

    二、功能原理

    1.原理框图

    工作原理框图

    2.工作原理

    (1)MediaProjection截屏

    MediaProjection是Google在Android5.0之后给开发者提供的截屏或录屏方法。在使用MediaProjection之前需要先申请权限。

        private void Request_Media_Projection_Permission() {
            MediaProjectionManager mediaProjectionManager = (MediaProjectionManager) this.getSystemService(Context.MEDIA_PROJECTION_SERVICE);
            Intent intent = mediaProjectionManager.createScreenCaptureIntent();
            startActivityForResult(intent, REQUEST_MEDIA_PROJECTION_CODE);
        }
        
        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == REQUEST_MEDIA_PROJECTION_CODE) {
                if (resultCode != Activity.RESULT_OK) {
                    Toast.makeText(this, "Media Projection Permission Denied", Toast.LENGTH_SHORT).show();
                    return;
                }
                MyUtils.setResultCode(resultCode);
                MyUtils.setResultData(data);
            }
        }
        
        private ScreenCapture(Context context, int resultCode, Intent data) {
            MediaProjectionManager mMediaProjectionManager = (MediaProjectionManager) context.getSystemService(Context.MEDIA_PROJECTION_SERVICE);
            mMediaProjection = mMediaProjectionManager.getMediaProjection(resultCode, data);
            screen_width = MyUtils.getScreenWidth();
            screen_height = MyUtils.getScreenHeight();
            screen_density = MyUtils.getScreenDensity();
            mImageReader = ImageReader.newInstance(
                    screen_width,
                    screen_height,
                    PixelFormat.RGBA_8888,
                    2);
        }
    
        public static ScreenCapture getInstance(Context context, int resultCode, Intent data) {
            if(screenCapture == null) {
                synchronized (ScreenCapture.class) {
                    if(screenCapture == null) {
                        screenCapture = new ScreenCapture(context, resultCode, data);
                    }
                }
            }
            return screenCapture;
        }
    

    MediaProjection通过createVirtualDisplay来截屏,我们可以通过ImageReader的setOnImageAvailableListener把截屏数据转为Bitmap数据。

        private void setUpVirtualDisplay() {
            mVirtualDisplay = mMediaProjection.createVirtualDisplay(
                    "ScreenCapture",
                    screen_width,
                    screen_height,
                    screen_density,
                    DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
                    mImageReader.getSurface(),
                    null,
                    null);
    
            mImageReader.setOnImageAvailableListener(this, null);
        }
    
        @Override
        public void onImageAvailable(ImageReader imageReader) {
            try {
                Image image = imageReader.acquireLatestImage();
                if(image != null) {
                    Image.Plane[] planes = image.getPlanes();
                    ByteBuffer buffer = planes[0].getBuffer();
                    int pixelStride = planes[0].getPixelStride();
                    int rowStride = planes[0].getRowStride();
                    int rowPadding = rowStride - pixelStride * screen_width;
                    Bitmap bitmap = Bitmap.createBitmap(screen_width + rowPadding / pixelStride, screen_height, Bitmap.Config.ARGB_8888);
                    bitmap.copyPixelsFromBuffer(buffer);
                    MyUtils.setBitmap(bitmap);
                    image.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    (2)SurfaceView显示

    SurfaceView渲染图片是在独立线程里进行的,所以它显示大图片会更快更流畅。我们可以新建一个View来继承它,并在这个View里实现我们想要的功能,比如显示Bitmap。侦听用户的触摸事件主要是通过View的OnTouchListener来实现的。

        public void drawBitmap() {
            Canvas canvas = surfaceHolder.lockCanvas();
            if (canvas != null) {
                bitmap = getBitmap();
                if (bitmap != null) {
                    canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
                    Rect rect = new Rect(0, 0, viewWidth, viewHeight);
                    canvas.drawBitmap(bitmap, null, rect, null);
                }
                surfaceHolder.unlockCanvasAndPost(canvas);
            }
        }
        
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            switch (motionEvent.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    int staX = (int) (motionEvent.getX() * getWidthConvert());
                    int staY = (int) (motionEvent.getY() * getHeightConvert());
                    MyUtils.setStartX(staX);
                    MyUtils.setStartY(staY);
                    touchClientRunnable.setTouchDown(true);
                    break;
                case MotionEvent.ACTION_UP:
                    int endX = (int) (motionEvent.getX() * getWidthConvert());
                    int endY = (int) (motionEvent.getY() * getHeightConvert());
                    MyUtils.setEndX(endX);
                    MyUtils.setEndY(endY);
                    touchClientRunnable.setTouchUp(true);
                    break;
            }
            return true;
        }
    
        @Override
        public void run() {
            while (isDraw) {
                try {
                    drawBitmap();
                    setOnTouchListener(this);
                    Thread.sleep(10);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    

    (3)TCP传输Bitmap

    由于截屏的图片很大,直接传输会很慢,所以我们需要对图片进行压缩处理,这里采用的是缩放压缩。

        public static Bitmap BitmapMatrixCompress(Bitmap bitmap) {
            Matrix matrix = new Matrix();
            matrix.setScale(0.5f, 0.5f);
            return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
        }
    

    服务端发送Bitmap

        private final static byte[] PACKAGE_HEAD = {(byte)0xFF, (byte)0xCF, (byte)0xFA, (byte)0xBF, (byte)0xF6, (byte)0xAF, (byte)0xFE, (byte)0xFF};
    
        public static byte[] BitmaptoBytes(Bitmap bitmap) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            return baos.toByteArray();
        }
    
        private void ServerTransmitBitmap() {
            try {
                DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
                if (bitmap != null) {
                    byte[] bytes = MyUtils.BitmaptoBytes(bitmap);
                    dataOutputStream.write(PACKAGE_HEAD);
                    dataOutputStream.writeInt(MyUtils.getScreenWidth());
                    dataOutputStream.writeInt(MyUtils.getScreenHeight());
                    dataOutputStream.writeInt(bytes.length);
                    dataOutputStream.write(bytes);
                }
                dataOutputStream.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    

    客户端接收Bitmap

        private final static byte[] PACKAGE_HEAD = {(byte)0xFF, (byte)0xCF, (byte)0xFA, (byte)0xBF, (byte)0xF6, (byte)0xAF, (byte)0xFE, (byte)0xFF};
    
        public static Bitmap BytestoBitmap(byte[] b) {
            if(b.length != 0) {
                return BitmapFactory.decodeByteArray(b, 0, b.length);
            } else {
                return null;
            }
        }
    
        private void ClientReceiveBitmap() {
            try {
                InputStream inputStream = socket.getInputStream();
                boolean isHead = true;
                for (byte b : PACKAGE_HEAD) {
                    byte head = (byte) inputStream.read();
                    if (head != b) {
                        isHead = false;
                        break;
                    }
                }
                if (isHead) {
                    DataInputStream dataInputStream = new DataInputStream(inputStream);
                    int width = dataInputStream.readInt();
                    int height = dataInputStream.readInt();
                    int len = dataInputStream.readInt();
                    byte[] bytes = new byte[len];
                    dataInputStream.readFully(bytes, 0, len);
                    Bitmap bitmap = MyUtils.BytestoBitmap(bytes);
                    if (bitmap != null && width != 0 && height != 0) {
                        if (listener != null) {
                            listener.onClientReceiveBitmap(bitmap, width, height);
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    (4)ADB端口转发

    反向控制主要是用到了adb forward命令进行端口转发,其实也是TCP通信。使用这种方法主要是手机不用ROOT。

    import json
    import os
    import socket
    isConnect = False
    isTouch = False
    ack = os.popen('adb forward tcp:50003 tcp:50004').read()
    if ack.find('error') == 0:
        isConnect = False
        print('no device')
    else:
        isConnect = True
    if isConnect:
        client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        client.connect(('127.0.0.1', 50003))
        while True:
            try:
                msg = client.recv(2048)
                data = json.loads(msg.decode('utf-8'))
                staX = data.get('staX')
                staY = data.get('staY')
                endX = data.get('endX')
                endY = data.get('endY')
                action = data.get('action')
                if action != 0:
                    isTouch = True
                if isTouch:
                    cmd = ''
                    if action == 1:
                        cmd = 'adb shell input tap {} {}'.format(staX, staY)
                    elif action == 2:
                        cmd = 'adb shell input swipe {} {} {} {}'.format(staX, staY, endX, endY)
                    elif action == 3:
                        cmd = 'adb shell input keyevent 4'
                    os.system(cmd)
                    isTouch = False
                    action = 0
                    print(cmd)
            except Exception:
                continue
    

    以上是部分代码片段。

    三、效果演示

    效果演示


    总结

    现阶段主要是实现了基本功能,还存在很多缺陷,现在只支持在局域网或热点下共享屏幕,屏幕显示有很明显的延迟,反向控制需要连接电脑等。

    展开全文
  • 局域网屏幕共享软件, InletexEMC软件是一款来自国外的实用型屏幕共享软件,无需安装,不对系统产生垃圾。
  • windows10共享的方法,windows10,IPV4,VLAN网测试通过正常
  • 局域网内部共享屏幕软件
  • 本来在网上买了肉,等到终于发货送到县城,我却不能进城去取了……希望顺丰营业点有冰箱,我的肉不会坏掉今天给大家介绍的是Android系统的无线投屏功能,简单来说就是将支持的设备作为安卓手机的外接屏幕,以期在...
  • 屏幕共享软件

    2018-01-06 10:38:25
    再用一个局域网就可以多台电脑访问同一台电脑,用于共屏,很好用,而且不会卡顿,很高清

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,899
精华内容 7,559
关键字:

局域网屏幕实时共享

友情链接: Linuxarm_IDE.rar