bash shell连接socket

说明需求:

1,linux系统启动bash,后台shell socket服务.

2,shell服务后台监测手机插入,一旦连接手机,使用adb forward配置端口.

3,shell脚本调用socket,与手机socket server进行通讯.

4,通讯结束,手机socket通知终端退出socket client.

第一部分:每秒扫描一次手机连接,并主动进行adb forward.

#!/bin/sh
echo -----------------------------------------------------------------
while true; do
    if [ $(adb devices -l | wc -l) -eq 3 ];then
##列出所有设备,由于第一行是提示,最后一行是空白,所以通过awk只显示除第一行和最后一行的输出。
##  awk 'NR>2{print p}{p=$0}'  ##这句逻辑通过百度是意思NR>2及当当前行大于2时,即第三行开始满足条件,打印前一行的信息,这逻辑就是为了过滤第一行和最后一行。
        echo "device has connected"
        adb devices -l | awk 'NR>2{print p}{p=$0}' | while read id num
        do
            echo "sn:"$id "; " $num
        done
        break
##无用逻辑,只是打印出当前连接的设备信息,可省略
    elif [ $(adb devices -l | wc -l) -eq 2 ];then
        echo "wait for devices"
    else
        echo "more then one devices"
    fi
    sleep 1
done
echo -----------------------------------------------------------------
echo "`date +%H:%M:%S`"
adb forward tcp:8000 tcp:9000
echo "`date +%H:%M:%S`"

编一个nc出来,用于socket操作. http://blog.chinaunix.net/blog/downLoad/fileid/9965.html
./configure --prefix=/home/seth/Downloads/netcat-0/ --host=arm-linux --disable-debug --enable-shared CC=/home/git/T2/tool/toolchain/bin/arm-linux-gnueabi-gcc
nc -w 10 192.168.2.105 22222 < netcat 客户端
busybox nc -lp 22222 > netcat 主机端
实际操作,先adb forward tcp:8000 tcp:9000
busybox nc -w 10 127.0.0.1 8000 ,客户端显示已连接,并返回消息.

你可能感兴趣的:(linux内核)