snilesnile 2018-04-25 09:26 采纳率: 0%
浏览 1419
已结题

使用nsd服务获取局域网的打印机,但是探寻出来的端口号不对

如题

```package com.example.etz1_3.myapplication;

import android.content.Context;
import android.net.nsd.NsdManager;
import android.net.nsd.NsdServiceInfo;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import java.net.ServerSocket;
import java.util.List;

public class FibndService2 {
NsdManager.RegistrationListener nsRegListener;
NsdManager.DiscoveryListener nsDicListener;
NsdManager.ResolveListener nsResolveListener;
Context context;
NsdManager nsdManager;
List beans;
MyAdapter adapter;
ad a;
public FibndService2(Context context){
this.context = context;
}
public FibndService2(Context context, List beans,MyAdapter adapter){
this.context = context;
this.beans = beans;
this.adapter = adapter;
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void registerService() {
// 注意:注册网络服务时不要对端口进行硬编码,通过如下这种方式为你的网络服务获取
// 一个可用的端口号.
int port = 0;
try {
ServerSocket sock = new ServerSocket(0);
port = sock.getLocalPort();
sock.close();
} catch (Exception e) {
Toast.makeText(context, "can not set port", Toast.LENGTH_SHORT);
}

    // 注册网络服务的名称、类型、端口
    NsdServiceInfo nsdServiceInfo = new NsdServiceInfo();
    nsdServiceInfo.setServiceName("NSD_Test_Program");
    nsdServiceInfo.setServiceType("_ipp._tcp");
    nsdServiceInfo.setPort(port);

    // 实现一个网络服务的注册事件监听器,监听器的对象应该保存起来以便之后进行注销
    nsRegListener = new NsdManager.RegistrationListener() {
        @Override
        public void onUnregistrationFailed(NsdServiceInfo arg0, int arg1) {
            Toast.makeText(context, "Unregistration Failed", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onServiceUnregistered(NsdServiceInfo arg0) {
            Toast.makeText(context, "Service Unregistered", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onServiceRegistered(NsdServiceInfo arg0) {
            Toast.makeText(context, "Service Registered", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onRegistrationFailed(NsdServiceInfo arg0, int arg1) {
            Toast.makeText(context, "Registration Failed", Toast.LENGTH_SHORT).show();
        }
    };

    // 获取系统网络服务管理器,准备之后进行注册
    nsdManager = (NsdManager) context.getSystemService(Context.NSD_SERVICE);
    nsdManager.registerService(nsdServiceInfo, NsdManager.PROTOCOL_DNS_SD, nsRegListener);
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void discoverService() {
    nsdManager = (NsdManager) context.getSystemService(Context.NSD_SERVICE);
    nsDicListener = new NsdManager.DiscoveryListener() {
        @Override
        public void onStopDiscoveryFailed(String serviceType, int errorCode) {
            Toast.makeText(context, "Stop Discovery Failed", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onStartDiscoveryFailed(String serviceType, int errorCode) {
            Toast.makeText(context,
                    "Start Discovery Failed", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onServiceLost(NsdServiceInfo serviceInfo) {
            Toast.makeText(context, "Service Lost", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onServiceFound(NsdServiceInfo serviceInfo) {
            // 发现网络服务时就会触发该事件
            // 可以通过switch或if获取那些你真正关心的服务
            Toast.makeText(context, "Service Found", Toast.LENGTH_SHORT).show();
            nsdManager.resolveService(serviceInfo,nsResolveListener);

        }

        @Override
        public void onDiscoveryStopped(String serviceType) {
            Toast.makeText(context, "Discovery Stopped", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onDiscoveryStarted(String serviceType) {
            Toast.makeText(context, "Discovery Started", Toast.LENGTH_SHORT).show();
        }
    };
    //NsdManager nsdManager = (NsdManager) context.getSystemService(Context.NSD_SERVICE);
    nsdManager.discoverServices("_ipp._tcp", NsdManager.PROTOCOL_DNS_SD,nsDicListener);
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void initResolveListener() {
    nsResolveListener = new NsdManager.ResolveListener() {
        @Override
        public void onServiceResolved(NsdServiceInfo arg0) {
            // 可以再这里获取相应网络服务的地址及端口信息,然后决定是否要与之建立连接。
            // 之后就是一些socket操作了
            Bean bean = new Bean();
            bean.setName(arg0.getServiceName());
            bean.setIp(arg0.getHost()+"");
            bean.setPort(arg0.getPort()+"");
            beans.add(bean);


            a.not();

            Log.e("@lie",arg0.toString());

        }

        @Override
        public void onResolveFailed(NsdServiceInfo arg0, int arg1) {
            Toast.makeText(context, "onResolveFailed", Toast.LENGTH_SHORT).show();
        }
    };
}
public void setad(ad a){
    this.a = a;
}
interface ad{
    public void not();
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void unregisterService() {

    nsdManager.stopServiceDiscovery(nsDicListener); // 关闭网络发现
}

}


  • 写回答

1条回答 默认 最新

  • qq_35126159 2018-05-18 07:38
    关注

    打印端口:170

    常见端口列表
    TCP端口

    7 = 回显
    9 = 丢弃
    11 = 在线用户
    13 = 时间服务
    15 = 网络状态
    17 = 每日引用
    18 = 消息发送
    19 = 字符发生器
    20 = ftp数据
    21 = 文件传输
    22 = SSH端口
    23 = 远程终端
    25 = 发送邮件
    31 = Masters Paradise木马
    37 = 时间
    39 = 资源定位协议
    41 = DeepThroat木马
    42 = WINS 主机名服务
    43 = WhoIs服务
    58 = DMSetup木马
    59 = 个人文件服务
    63 = WHOIS端口
    69 = TFTP服务
    70 = 信息检索
    79 = 查询在线用户
    80 = WEB网页
    88 = Kerberros5认证
    101 = 主机名
    102 = ISO
    107 = 远程登录终端
    109 = pop2邮件
    110 = pop3邮件
    111 = SUN远程控制
    113 = 身份验证
    117 = UUPC
    119 = nntp新闻组
    121 = JammerKillah木马
    135 = 本地服务
    138 = 隐形大盗
    139 = 文件共享
    143 = IMAP4邮件
    146 = FC-Infector木马
    158 = 邮件服务
    170 = 打印服务
    179 = BGP
    194 = IRC PORT
    213 = TCP OVER IPX
    220 = IMAP3邮件
    389 = 目录服务
    406 = IMSP PORT
    411 = DC++
    421 = TCP Wrappers
    443 = 安全WEB访问
    445 = SMB(交换服务器消息块)
    456 = Hackers Paradise木马
    464 = Kerberros认证
    512 = 远程执行或卫星通讯
    513 = 远程登录与查询
    514 = SHELL/系统日志
    515 = 打印服务
    517 = Talk
    518 = 网络聊天
    520 = EFS
    525 = 时间服务
    526 = 日期更新
    530 = RPC
    531 = RASmin木马
    532 = 新闻阅读
    533 = 紧急广播
    540 = UUCP
    543 = Kerberos登录
    544 = 远程shell
    550 = who
    554 = RTSP
    555 = Ini-Killer木马
    556 = 远程文件系统
    560 = 远程监控
    561 = 监控
    636 = 安全目录服务
    666 = Attack FTP木马
    749 = Kerberos管理
    750 = Kerberos V4
    911 = Dark Shadow木马
    989 = FTPS
    990 = FTPS
    992 = TelnetS
    993 = IMAPS
    999 = DeepThroat木马
    1001 = Silencer木马
    1010 = Doly木马
    1011 = Doly木马
    1012 = Doly木马
    1015 = Doly木马
    1024 = NetSpy木马
    1042 = Bla木马
    1045 = RASmin木马
    1080 = SOCKS代理
    1090 = Extreme木马
    1095 = Rat木马
    1097 = Rat木马
    1098 = Rat木马
    1099 = Rat木马
    1109 = Kerberos POP
    1167 = 私用电话
    1170 = Psyber Stream Server
    1214 = KAZAA下载
    1234 = Ultors/恶鹰木马
    1243 = Backdoor/SubSeven木马
    1245 = VooDoo Doll木马
    1349 = BO DLL木马
    1352 = Lotus Notes
    1433 = SQL SERVER
    1492 = FTP99CMP木马
    1494 = CITRIX
    1503 = Netmeeting
    1512 = WINS解析
    1524 = IngresLock后门
    1600 = Shivka-Burka木马
    1630 = 网易泡泡
    1701 = L2TP
    1720 = H323
    1723 = PPTP(虚拟专用网)
    1731 = Netmeeting
    1755 = 流媒体服务
    1807 = SpySender木马
    1812 = Radius认证
    1813 = Radius评估
    1863 = MSN聊天
    1981 = ShockRave木马
    1999 = Backdoor木马
    2000 = TransScout-Remote-Explorer木马
    2001 = TransScout木马
    2002 = TransScout/恶鹰木马
    2003 = TransScout木马
    2004 = TransScout木马
    2005 = TransScout木马
    2023 = Ripper木马
    2049 = NFS服务器
    2053 = KNETD
    2115 = Bugs木马
    2140 = Deep Throat木马
    2401 = CVS
    2535 = 恶鹰
    2565 = Striker木马
    2583 = WinCrash木马
    2773 = Backdoor/SubSeven木马
    2774 = SubSeven木马
    2801 = Phineas Phucker木马
    2869 = UPNP(通用即插即用)
    3024 = WinCrash木马
    3050 = InterBase
    3128 = squid代理
    3129 = Masters Paradise木马
    3150 = DeepThroat木马
    3306 = MYSQL
    3389 = 远程桌面
    3544 = MSN语音
    3545 = MSN语音
    3546 = MSN语音
    3547 = MSN语音
    3548 = MSN语音
    3549 = MSN语音
    3550 = MSN语音
    3551 = MSN语音
    3552 = MSN语音
    3553 = MSN语音
    3554 = MSN语音
    3555 = MSN语音
    3556 = MSN语音
    3557 = MSN语音
    3558 = MSN语音
    3559 = MSN语音
    3560 = MSN语音
    3561 = MSN语音
    3562 = MSN语音
    3563 = MSN语音
    3564 = MSN语音
    3565 = MSN语音
    3566 = MSN语音
    3567 = MSN语音
    3568 = MSN语音
    3569 = MSN语音
    3570 = MSN语音
    3571 = MSN语音
    3572 = MSN语音
    3573 = MSN语音
    3574 = MSN语音
    3575 = MSN语音
    3576 = MSN语音
    3577 = MSN语音
    3578 = MSN语音
    3579 = MSN语音
    3700 = Portal of Doom木马
    4080 = WebAdmin
    4081 = WebAdmin+SSL
    4092 = WinCrash木马
    4267 = SubSeven木马
    4443 = AOL MSN
    4567 = File Nail木马
    4590 = ICQ木马
    4661 = 电驴下载
    4662 = 电驴下载
    4663 = 电驴下载
    4664 = 电驴下载
    4665 = 电驴下载
    4666 = 电驴下载
    4899 = Radmin木马
    5000 = Sokets-de木马
    5000 = UPnP(通用即插即用)
    5001 = Back Door Setup木马
    5060 = SIP
    5168 = 高波蠕虫
    5190 = AOL MSN
    5321 = Firehotcker木马
    5333 = NetMonitor木马
    5400 = Blade Runner木马
    5401 = Blade Runner木马
    5402 = Blade Runner木马
    5550 = JAPAN xtcp木马
    5554 = 假警察蠕虫
    5555 = ServeMe木马
    5556 = BO Facil木马
    5557 = BO Facil木马
    5569 = Robo-Hack木马
    5631 = pcAnywhere
    5632 = pcAnywhere
    5742 = WinCrash木马
    5800 = VNC端口
    5801 = VNC端口
    5890 = VNC端口
    5891 = VNC端口
    5892 = VNC端口
    6267 = 广外女生
    6400 = The Thing木马
    6665 = IRC
    6666 = IRC SERVER PORT
    6667 = 小邮差
    6668 = IRC
    6669 = IRC
    6670 = DeepThroat木马
    6711 = SubSeven木马
    6771 = DeepThroat木马
    6776 = BackDoor-G木马
    6881 = BT下载
    6882 = BT下载
    6883 = BT下载
    6884 = BT下载
    6885 = BT下载
    6886 = BT下载
    6887 = BT下载
    6888 = BT下载
    6889 = BT下载
    6890 = BT下载
    6939 = Indoctrination木马
    6969 = GateCrasher/Priority木马
    6970 = GateCrasher木马
    7000 = Remote Grab木马
    7001 = Windows messager
    7070 = RealAudio控制口
    7215 = Backdoor/SubSeven木马
    7300 = 网络精灵木马
    7301 = 网络精灵木马
    7306 = 网络精灵木马
    7307 = 网络精灵木马
    7308 = 网络精灵木马
    7424 = Host Control Trojan
    7467 = Padobot
    7511 = 聪明基因
    7597 = QaZ木马
    7626 = 冰河木马
    7789 = Back Door Setup/ICKiller木马
    8011 = 无赖小子
    8102 = 网络神偷
    8181 = 灾飞
    9408 = 山泉木马
    9535 = 远程管理
    9872 = Portal of Doom木马
    9873 = Portal of Doom木马
    9874 = Portal of Doom木马
    9875 = Portal of Doom木马
    9898 = 假警察蠕虫
    9989 = iNi-Killer木马
    10066 = Ambush Trojan
    10067 = Portal of Doom木马
    10167 = Portal of Doom木马
    10168 = 恶邮差
    10520 = Acid Shivers木马
    10607 = COMA木马
    11000 = Senna Spy木马
    11223 = Progenic木马
    11927 = Win32.Randin
    12076 = GJammer木马
    12223 = Keylogger木马
    12345 = NetBus木马
    12346 = GabanBus木马
    12361 = Whack-a-mole木马
    12362 = Whack-a-mole木马
    12363 = Whack-a-Mole木马
    12631 = WhackJob木马
    13000 = Senna Spy木马
    13223 = PowWow聊天
    14500 = PC Invader木马
    14501 = PC Invader木马
    14502 = PC Invader木马
    14503 = PC Invader木马
    15000 = NetDemon木马
    15382 = SubZero木马
    16484 = Mosucker木马
    16772 = ICQ Revenge木马
    16969 = Priority木马
    17072 = Conducent广告
    17166 = Mosaic木马
    17300 = Kuang2 the virus Trojan
    17449 = Kid Terror Trojan
    17499 = CrazzyNet Trojan
    17500 = CrazzyNet Trojan
    17569 = Infector Trojan
    17593 = Audiodoor Trojan
    17777 = Nephron Trojan
    19191 = 蓝色火焰
    19864 = ICQ Revenge木马
    20001 = Millennium木马
    20002 = Acidkor Trojan
    20005 = Mosucker木马
    20023 = VP Killer Trojan
    20034 = NetBus 2 Pro木马
    20808 = QQ女友
    21544 = GirlFriend木马
    22222 = Proziack木马
    23005 = NetTrash木马
    23006 = NetTrash木马
    23023 = Logged木马
    23032 = Amanda木马
    23432 = Asylum木马
    23444 = 网络公牛
    23456 = Evil FTP木马
    23456 = EvilFTP-UglyFTP木马
    23476 = Donald-Dick木马
    23477 = Donald-Dick木马
    25685 = Moonpie木马
    25686 = Moonpie木马
    25836 = Trojan-Proxy
    25982 = Moonpie木马
    26274 = Delta Source木马
    27184 = Alvgus 2000 Trojan
    29104 = NetTrojan木马
    29891 = The Unexplained木马
    30001 = ErrOr32木马
    30003 = Lamers Death木马
    30029 = AOL木马
    30100 = NetSphere木马
    30101 = NetSphere木马
    30102 = NetSphere木马
    30103 = NetSphere 木马
    30103 = NetSphere木马
    30133 = NetSphere木马
    30303 = Sockets de Troie
    30947 = Intruse木马
    31336 = Butt Funnel木马
    31337 = Back-Orifice木马
    31338 = NetSpy DK 木马
    31339 = NetSpy DK 木马
    31666 = BOWhack木马
    31785 = Hack Attack木马
    31787 = Hack Attack木马
    31788 = Hack-A-Tack木马
    31789 = Hack Attack木马
    31791 = Hack Attack木马
    31792 = Hack-A-Tack木马
    32100 = Peanut Brittle木马
    32418 = Acid Battery木马
    33333 = Prosiak木马
    33577 = Son of PsychWard木马
    33777 = Son of PsychWard木马
    33911 = Spirit 2000/2001木马
    34324 = Big Gluck木马
    34555 = Trinoo木马
    35555 = Trinoo木马
    36549 = Trojan-Proxy
    37237 = Mantis Trojan
    40412 = The Spy木马
    40421 = Agent 40421木马
    40422 = Master-Paradise木马
    40423 = Master-Paradise木马
    40425 = Master-Paradise木马
    40426 = Master-Paradise木马
    41337 = Storm木马
    41666 = Remote Boot tool木马
    46147 = Backdoor.sdBot
    47262 = Delta Source木马
    49301 = Online KeyLogger木马
    50130 = Enterprise木马
    50505 = Sockets de Troie木马
    50766 = Fore木马
    51996 = Cafeini木马
    53001 = Remote Windows Shutdown木马
    54283 = Backdoor/SubSeven木马
    54320 = Back-Orifice木马
    54321 = Back-Orifice木马
    55165 = File Manager木马
    57341 = NetRaider木马
    58339 = Butt Funnel木马
    60000 = DeepThroat木马
    60411 = Connection木马
    61348 = Bunker-hill木马
    61466 = Telecommando木马
    61603 = Bunker-hill木马
    63485 = Bunker-hill木马
    65000 = Devil木马
    65390 = Eclypse木马
    65432 = The Traitor木马
    65535 = Rc1木马

    评论

报告相同问题?

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误