zoukankan      html  css  js  c++  java
  • 文本共享小工具

       平时本人的android手机上看都不错的视频,想在电脑上看,如果用的windows好多了,

    QQ上有“我的设备”直接把链接发送过去就好了,但是对于linux用户,android上也有一些软件可以,

    但是本人没用过,而且不需要多强大的功能,就写了个小工具。

      对于android开发本人并不熟,写个简单的小程序,还是可以的,图形化编程都有通性。

    用到的android知识并不多,通信就是udp的广播,pc端的server监听8082接受信息;

      1、客户端默认是广播把信息传递出去的,但是本人办公的地方广播接收不到信息,也许路由设置了或者

    别的原因在别的环境就可以。

      如下图:

            

        1.如果广播能收到图中的“ip address”就不用设置了;

        2.如果收不到,就要设置ip address,再次打开程序时会自动填充上次使用的ip,但是由于每次

    启动程序默认广播,填充的ip地址不会被使用,除非你点击ip地址(本人添加的EditText点击事件),

    点击后才能使用;当然你如果重新输入ip后,不用点了(本人添加的文本change事件)。

      按钮clip是发送手机剪切板上的信息到PC,在下面的输入框是发送想输入的或者把信息粘贴到

    这里再按send发送到pc上。

       2、PC端就简单了,代码如下:     

     1 import socket
     2 import fcntl 
     3 import struct
     4 import platform
     5 def get_ip_address(ifname): #linux获取ip
     6     soc= socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
     7     return socket.inet_ntoa(fcntl.ioctl( 
     8                     soc.fileno(), 
     9                     0x8915, # SIOCGIFADDR 
    10                     struct.pack('256s', ifname[:15]) 
    11                 )[20:24]) 
    12 def green(src):    #在windows cmd上不可用
    13     if src is None:
    14         src=''
    15     return '33[0;32m'+src+'33[0m'
    16 
    17 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    18 s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    19 s.bind(('', 8082))
    20 
    21 OS=platform.system()
    22 ip=None
    23 if OS=='Linux':
    24     ip=get_ip_address('eth1')
    25 elif OS=='Windows' or 'CYGWIN' in OS:
    26     ip = socket.gethostbyname(socket.gethostname()) #win上获得ip
    27 src="%s %d" %(ip,8082)
    28 print 'Server:',green(src)  
    29 while 1:
    30     message, address = s.recvfrom(4096)
    31     if message:
    32         print message
    33         print green('Come from:'+str(address))
    34     

    上面程序仅仅是把信息显示出来,没做别的处理,比如可以把信息设置进pc的剪切板里。

       

    ”What are the costs"和“hello”即是PC接受的信息。

        android的代码在http://git.oschina.net/wuchaofan/clipshare

        当然也可以添加传输文件的功能,先这样吧,够用就行了。

  • 相关阅读:
    Ural-1018 Binary Apple Tree(树形dp+分组背包)
    Ural 1332 把圆细分+圆内切,内含关系判定
    读取图片文件(C#实现)
    使用ZXing.dll库生成二维码(C#实现)
    combobox绑定数据
    DataGridView显示日期格式问题
    夜深忽梦少年事
    Scrum角色
    Srum框架
    Scrum流程
  • 原文地址:https://www.cnblogs.com/wuchaofan/p/3431216.html
Copyright © 2011-2022 走看看