You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(4) |
Dec
(14) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(5) |
Feb
(1) |
Mar
(5) |
Apr
|
May
(3) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2005 |
Jan
|
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2006 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
(2) |
Nov
(7) |
Dec
(7) |
2008 |
Jan
(26) |
Feb
(2) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(1) |
2009 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(3) |
2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(5) |
Oct
(3) |
Nov
|
Dec
|
2011 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
(11) |
May
(8) |
Jun
(3) |
Jul
(4) |
Aug
(5) |
Sep
(5) |
Oct
(6) |
Nov
(3) |
Dec
(2) |
2012 |
Jan
(5) |
Feb
(11) |
Mar
(12) |
Apr
|
May
(3) |
Jun
|
Jul
(4) |
Aug
|
Sep
(1) |
Oct
(5) |
Nov
(1) |
Dec
|
2013 |
Jan
|
Feb
(3) |
Mar
(2) |
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2014 |
Jan
(9) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
(7) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
From: DocuSign R. <in...@bu...> - 2023-12-27 16:22:07
|
Review and sign your document.. Review and Sign Digitally signing documents with DocuSign is reliable, risk-free and only going to take a little bit of your time and effort. This is an automatically made notice. This message holds a private info. Make sure you do not display this e mail to other people. Additional Approach Make sure you take a look at DocuSign, just click 'Documents', enter the codes delivered in your document. About Our Service Sign Files and Bills in barely very few steps. It is risk-free. Whether you're at your workplace, in your own home or on-the-go -- Our service gives a professional alternative for Online Procedures. Have queries? In case you would like to modify your document or have questions, get in touch with the sender immediately. If perhaps you are not able to seeyour file, see site. Sign your document You've been provided a document for digital signature. |
From: DocuSign S. <in...@do...> - 2023-12-21 16:26:08
|
Review your file.. Review and Sign Digitally signing documents is reliable, risk-free and only going to require a few minutes of your time and effort. It is an electronically made notification. This particular letter contains a private info. Make sure you do not show this message to other individuals. Other Approach Make sure you visit Our webpage, just click 'Documents', enter in the codes given in your document. About Our Service Sign Documents and Invoices in just couple of clicks. It is secure. Whether or not you may be at work, in your house -- Our service gives an expert alternative for Electronic Operations. Got queries? If perhaps you would like to modify an invoice or have questions, contact sender directly. If you cannot seeyour document, visit Help with Signing site. Sign your document You've been sent a document for electronic signing. |
From: iqpycal <vax...@in...> - 2018-03-15 21:07:24
|
企业运营管理与数据分析模型 【开课时间】2018年3月29-30日 上海 【培训对象】总经理、运营总监、运营官、财务总监等企业高层管理人员 【课程费用】6980/人/2天(培训、教材、茶点。。。) 【垂询热线】021-31006787 13381601000 许先生 【微 信 号】320588808 【电子邮箱】to...@qi... 注:如不需此类课程信息,请发送“删除”至tui...@16...,我们会及时给您删除,谢谢您的理解! 课程背景: 在大数据时代技术改进使得管理这门看似复杂的学科变得简单和实用,更为重要的意义在于使管理者的“知其然”环节从经验主义的定性分析,进化成数据定量分析。更有效的落到操作实处,促进管理技能提升“知其然更知其所以然”的完美结合;是涵盖百年管理理论与大数据实践智慧结晶的高端管理课程体系,也是管理者追求高效管理必修的内容! 运筹帷幄,决胜千里,刻画了战略对最终战事结局举足轻重的作用。而这句话,套用到商战上,恐怕一点也不为过。尽管没有了战场上的刀光剑影,但商界的竞争同样残酷无情。尤其是在竞争与日俱增的今天,全球化的浪潮和日进千里的技术创新,使企业稍有闪失,便有可能招招致灭顶之灾。如何在激烈动荡的市场竞争中,制定和执行正确的企业经营目标,已经成为决定企业能否立于不败之地的关键。 针对公司在经营目标设定和执行中每一个关键节点,本课程根据现中国企业现状,结合讲师多年留学海外经历和在国内长期担任公司总经理和上市公司董事,以及创业成功和失败的实战经验,以西方理论为基础,以东方融会贯通实用简易的实战工具,提出适当的解决步骤,促进企业可持续发展。 通过学习此课程,全面提升企业领导群体战略、决策能力和风险能力以及公司盈利能力。 课程收益: 1.以简单实用为目标设计的学习课程,帮助学员了解并深刻领会企业在大数据环境下,运营报表体系建立方法和应用企业现有数据解决实际管理问题的思路和方法; 2.找到最适合您的使用的数据管理工具,提升数据管理的功能和技巧,使你工作效率倍增; 3.全面深入的了解运营分析等实用技术和高级运用,解决运营工作中的实际问题和各类操作。 课程大纲: 前言 1.什么是大数据? 2.企业运营的竞争力 3.标准化与信息化是数据应用的基础 4.改善管理流程与运营数据的来源 5.营运风险控制的关键与信息化管理 第一部分:建立数据时代企业运营仪表盘 1.公司的反应有多快—展示数据案例(销售分析) 2.运营分析是战略执行的保障 3.报表的三大功能 4.大数据时代企业报表成熟度模型与案例 第二部分:市场分析(产品竞争策略) 1.面向竞争的市场分析与管理中的应用 如何进行市场和产品细分分析 产品策略的图表演绎 价格分析与对策 企业如何营造持续性的赢利结构(直观的量本利分析) 案例分析与讨论 2.在市场推广活动中的应用 市场推广活动的全程分析与管理数据分析 整体促销活动进行监控、评估流程和数据结构 如何简便发现异常费用流向和预警机制的建立 如何利用方案工具寻求最佳市场方案 案例分析与讨论 第三部分:运营分析(销售、财务、人力资源管理) 1.在销售管理中的应用 销售渠道的管理统计分析 渠道管理数据构架搭建(资金流、物流系统、渠道成员关系管理、台账建立和数据分析) 销售队伍的整体规划与综合诊断信息基础建立 销售代表业绩跟踪数据体系建立方法 有效的销售计划和销售目标设立 销售的有效计划和跟踪机制建立方式 建立在可持性发展基础上销售规模提升数据模型 2.在财务管理中的应用 公司盈利能力趋势分析 直观、动态的预算体系建模方式 产品上市财务预测案例分析 固定资产投资判断模型 项目现金流量与投资回报模型 财务比例分析与财务模型应用 3.在人力资源管理中的应用 公司员工结构多纬度分析 年度薪资预算方案模型制定 绩效驱动因素动态模型建立 业务人员行为分析建模 第四部分:控制分析 1.产品质量控制 质量纪录中的问题 您不能高枕无忧,也许下一个问题马上出现。 质量控制流程过程分析案例 2.采购控制 采购控制矩阵管理模型建立 主要原料价格变动的成本敏感性分析 采购价格趋势与结构监控方法 应付账款管理模型 第五部分:大数据时代管理的思路 1.管理假设 2.相关因素分析 3.建立台帐、数据整合 4.数据分析,建立模型 5.修正行为,预测趋势 6.验证假设 7.企业建立改进机制的步骤 讲师介绍:杨云老师 上海交通大学特聘教授 吉林大学兼职教授 中国顶级企业家俱乐部正和岛顾问 上海市品牌授权经营企业协会的创始人 潮牌大嘴猴服饰品牌和互联网爆款55度杯的背后推手 拥有十多年各行业丰富的咨询、项目顾问及培训经验,在品牌运营、数据和标准化管理等方面有丰富经验和独到见解 现为上海达橙实业有限公司董事长、北京聚知网络科技董事长,同时是全球领先的CEO发展机构伟事达中国私人董事会主席和教练 背景介绍: 1.职场经验: 6年海外生活工作经验、5年外企工作经验、15年企业高管管理经验,目前自己运营一家合资实业公司。 曾任正和岛副总裁,在正和岛一年的工作过程中做了很多项目,包括风口论坛、创新大集和游学。 曾担任澳大利亚 BEVERLY HILLS教会学校中文教师;澳大利亚 Classique Furniture Pty. Ltd. Australia 上海办事处首席代表;宝隆洋行英特尔乳品有限公司行政主管;均瑶集团企业总裁办公室行政经理;均瑶集团人力资源总监助理、企业标准化部长;均瑶集团文化传播公司总经理;均瑶集团乳业股份公司总经理;上市公司大东方股份有限公司董事。 具有十多年各行业丰富的咨询、项目顾问及培训经验,尤其熟悉快消、零售、文化产业、制造业和房地产行业。 85年中国第一批程序开发员,主持实施SAP,用友等ERP软件,以顾问式、项目式管理方式,帮任职企业解决众多实际管理问题。 2.学历及教育背景: 上海师范大学 理论物理系 学士 澳大利亚悉尼大学 教育系 访问学者 上海交通大学 管理学院 MBA 美国西海岸大学 工商管理博士 DBA |
From: Yosef K. <yo...@fs...> - 2017-11-09 08:19:11
|
My app aim is to discover elements on local network. Some of the elements response with a n address belongs to a different subnet scope. My app does not receives these element response (though they are seen by a sniffer). My app uses Jmdns.create(ifAddress, name) for each physical i/f. I think of 2 solutions 1. Configure the JMDNS driver to forward response from different network addresses. 2. Sniffing datagram and encoding it to jmdns ServiceEvent. For solution #1: does anyone know how to configure the driver to forward all incoming response? For solution #2: encoding datagram to DNSIncoming is trivial, how do I convert DNSIncoming to ServiceEvent? Description: my app support multiple interfaces, one is on subnet 192.168.0.0/16. element has 2 addresses one on 192.168.0.0/16 and another on 10.0.0.0/8. The element response is from its address on subnet 10.0.0.0/8. YosefK |
From: Martin P. <mar...@ho...> - 2014-12-03 20:52:50
|
Dear All, I hate to post questions that I really feel I should be able to work out myself, however this is driving me crazy! I've found the same question posted before but no answers. All I want to do is resolve an address 'mydevice.local' to an IP. All the code I have tried appears to be on service discovery, which I have not implemented on my device. As far I can tell all I need to do is send a multicast DNS request, with the relevant question, however I can not see how this is exposed in jmdns. Do I even need jmdns? Absolutely any pointers will be appreciated. Kind Regards. Martin. |
From: Alex O'R. <spy...@gm...> - 2014-02-02 03:55:54
|
There hasn't been any updates in while. I have no problems getting jmdns to see other machines running jmdns, however there appears to be an incompatibility issue with several android based bonjour/mdns browsers. (wired Windows with jmdns to wireless tablet) |
From: Nuno S. <nun...@im...> - 2014-01-17 15:58:28
|
Rick, My guesses from yesterday didn't seem to lead anywhere. I continued my search over the code and I have found something that has sorted my problem. Please look to the following diff on ListenerStatus.java: Index: src/main/java/javax/jmdns/impl/ListenerStatus.java =================================================================== --- src/main/java/javax/jmdns/impl/ListenerStatus.java (revision 353) +++ src/main/java/javax/jmdns/impl/ListenerStatus.java (working copy) @@ -58,10 +58,12 @@ String qualifiedName = event.getName() + "." + event.getType(); if (null == _addedServices.putIfAbsent(qualifiedName, event.getInfo().clone())) { this.getListener().serviceAdded(event); + /* ServiceInfo info = event.getInfo(); if ((info != null) && (info.hasData())) { this.getListener().serviceResolved(event); } + */ } else { logger.finer("Service Added called for a service already added: " + event); } @@ -116,6 +118,7 @@ private static final boolean _sameInfo(ServiceInfo info, ServiceInfo lastInfo) { if (info == null) return false; if (lastInfo == null) return false; + if (lastInfo.getPort()!=info.getPort()) return false; if (!info.equals(lastInfo)) return false; byte[] text = info.getTextBytes(); byte[] lastText = lastInfo.getTextBytes(); The _sameInfo method was not validating if the lastInfo port was the same as the current info. I have added that case and now it reports the new port. I'm still unsure about the need of that bit commented code. My guess is that if it is not commented, the serviceResolved is called without checking the new info. I have also changed constants to make the check more quick but i'm not including this changes here. I would like to have your input on this changes. Regards, Nuno Santos On 17/01/2014, at 00:23, Nuno Santos <nun...@im...> wrote: > Rick, > > I have passed more than 8 hours today trying to understand what is going on and I will try to resume what I found. > > jmDNS is reported with the correct port everytime the service is restarted. However, due to a caching problem, the last working port is reported. I have changed some constants in order to have a quicker cache cleaning and service discovery. > > Now please try to understand the following. I have placed debug output on clean cache method, which is giving me all the cached entries for a determined service. I will focus on my service. > > 1 - Service not running > > DNSCache Entries: > none > > 2 - Service added > > DNSCache add entries > > add entry with name: _livkontrol._tcp.local. key: _livkontrol._tcp.local. > add entry with name: BIGMAC._livkontrol._tcp.local. key: bigmac._livkontrol._tcp.local. > > First note here: two dns entries are inserted in cache. basically the same dns entry with a prefix. > > Service added : BIGMAC._livkontrol._tcp.local. info: [ServiceInfoImpl@1486975107 name: 'BIGMAC._livkontrol._tcp.local.' address: '(null):0' status: 'DNS: bigmac-home.local. state: probing 1 task: null', has NO data empty] > > 3 - Wait a bit > > DNSCache Entries: > > entry name: _livkontrol._tcp.local. key: _livkontrol._tcp.local. > entry name: BIGMAC._livkontrol._tcp.local. key: bigmac._livkontrol._tcp.local. > > 4 - Service closed > > Clean Cache: > Expired record with name: _livkontrol._tcp.local. key: _livkontrol._tcp.local. > Service removed : BIGMAC._livkontrol._tcp.local. > > 5 - Wait a bit > > DNSCache Entries: > > entry name: BIGMAC._livkontrol._tcp.local. key: bigmac._livkontrol._tcp.local. > > From my point of view this is the problem. When the service is removed, one of the DNSEntries expires but the other one doesn't, being kept in the cache. When the service is started again, the cache can find info for this key and reports the last port. > > > This was what I found and i'm pretty sure that with your help we can identify a proper solution for this problem. > > Looking forward to hear from you. > > With my best regards, > > Nuno Santos > > > On 15/01/2014, at 00:44, Rick Blair <ric...@ma...> wrote: > >> Hi Nuno, >> >> I think your case is fairly unique. Services typically dont change ports between runs. That is a service listens to a specific port and not some random one picked at startup. That is a service could be defined by the port it listens on. >> >> Is there anyway to pick a port and stay with it? >> >> Rick >> On Jan 14, 2014, at 3:27 PM, Nuno Santos wrote: >> >>> Hi Will, >>> >>> Thanks for your reply. >>> >>> My problem is the following. >>> >>> I have been using jmDNS and i'm experiencing a problem with service port caching. >>> >>> The lib detected the service, but if the service is stopped and started again, jmDNS reports the service with the last port. >>> >>> Have you ever experienced such phenomena? How did you workaround it? >>> >>> Thanks, >>> >>> Regards, >>> >>> Nuno >>> >>> On 14/01/2014, at 22:59, Will Hawkins <haw...@op...> wrote: >>> >>>> Yup. Ask away. >>>> >>>> On 01/14/2014 05:15 PM, Nuno Santos wrote: >>>>> Hi, >>>>> >>>>> I would like to discuss an issue i'm experiencing with jmDNS. Is there anyone currently using jmDNS actively on an Android application? >>>>> >>>>> Regards, >>>>> >>>>> Nuno Santos >>>>> ------------------------------------------------------------------------------ >>>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>>>> Critical Workloads, Development Environments & Everything In Between. >>>>> Get a Quote or Start a Free Trial Today. >>>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>>>> _______________________________________________ >>>>> Jmdns-discuss mailing list >>>>> Jmd...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >>>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>>> Critical Workloads, Development Environments & Everything In Between. >>>> Get a Quote or Start a Free Trial Today. >>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Jmdns-discuss mailing list >>>> Jmd...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >>> >>> >>> ------------------------------------------------------------------------------ >>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>> Critical Workloads, Development Environments & Everything In Between. >>> Get a Quote or Start a Free Trial Today. >>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Jmdns-discuss mailing list >>> Jmd...@li... >>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >> >> -- >> Tìoraidh! >> >> Rick Blair >> ric...@ma... >> >> >> > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk_______________________________________________ > Jmdns-discuss mailing list > Jmd...@li... > https://lists.sourceforge.net/lists/listinfo/jmdns-discuss |
From: Nuno S. <nun...@im...> - 2014-01-17 00:23:50
|
Rick, I have passed more than 8 hours today trying to understand what is going on and I will try to resume what I found. jmDNS is reported with the correct port everytime the service is restarted. However, due to a caching problem, the last working port is reported. I have changed some constants in order to have a quicker cache cleaning and service discovery. Now please try to understand the following. I have placed debug output on clean cache method, which is giving me all the cached entries for a determined service. I will focus on my service. 1 - Service not running DNSCache Entries: none 2 - Service added DNSCache add entries add entry with name: _livkontrol._tcp.local. key: _livkontrol._tcp.local. add entry with name: BIGMAC._livkontrol._tcp.local. key: bigmac._livkontrol._tcp.local. First note here: two dns entries are inserted in cache. basically the same dns entry with a prefix. Service added : BIGMAC._livkontrol._tcp.local. info: [ServiceInfoImpl@1486975107 name: 'BIGMAC._livkontrol._tcp.local.' address: '(null):0' status: 'DNS: bigmac-home.local. state: probing 1 task: null', has NO data empty] 3 - Wait a bit DNSCache Entries: entry name: _livkontrol._tcp.local. key: _livkontrol._tcp.local. entry name: BIGMAC._livkontrol._tcp.local. key: bigmac._livkontrol._tcp.local. 4 - Service closed Clean Cache: Expired record with name: _livkontrol._tcp.local. key: _livkontrol._tcp.local. Service removed : BIGMAC._livkontrol._tcp.local. 5 - Wait a bit DNSCache Entries: entry name: BIGMAC._livkontrol._tcp.local. key: bigmac._livkontrol._tcp.local. From my point of view this is the problem. When the service is removed, one of the DNSEntries expires but the other one doesn't, being kept in the cache. When the service is started again, the cache can find info for this key and reports the last port. This was what I found and i'm pretty sure that with your help we can identify a proper solution for this problem. Looking forward to hear from you. With my best regards, Nuno Santos On 15/01/2014, at 00:44, Rick Blair <ric...@ma...> wrote: > Hi Nuno, > > I think your case is fairly unique. Services typically dont change ports between runs. That is a service listens to a specific port and not some random one picked at startup. That is a service could be defined by the port it listens on. > > Is there anyway to pick a port and stay with it? > > Rick > On Jan 14, 2014, at 3:27 PM, Nuno Santos wrote: > >> Hi Will, >> >> Thanks for your reply. >> >> My problem is the following. >> >> I have been using jmDNS and i'm experiencing a problem with service port caching. >> >> The lib detected the service, but if the service is stopped and started again, jmDNS reports the service with the last port. >> >> Have you ever experienced such phenomena? How did you workaround it? >> >> Thanks, >> >> Regards, >> >> Nuno >> >> On 14/01/2014, at 22:59, Will Hawkins <haw...@op...> wrote: >> >>> Yup. Ask away. >>> >>> On 01/14/2014 05:15 PM, Nuno Santos wrote: >>>> Hi, >>>> >>>> I would like to discuss an issue i'm experiencing with jmDNS. Is there anyone currently using jmDNS actively on an Android application? >>>> >>>> Regards, >>>> >>>> Nuno Santos >>>> ------------------------------------------------------------------------------ >>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>>> Critical Workloads, Development Environments & Everything In Between. >>>> Get a Quote or Start a Free Trial Today. >>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Jmdns-discuss mailing list >>>> Jmd...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >>>> >>> >>> ------------------------------------------------------------------------------ >>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>> Critical Workloads, Development Environments & Everything In Between. >>> Get a Quote or Start a Free Trial Today. >>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Jmdns-discuss mailing list >>> Jmd...@li... >>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >> >> >> ------------------------------------------------------------------------------ >> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >> Learn Why More Businesses Are Choosing CenturyLink Cloud For >> Critical Workloads, Development Environments & Everything In Between. >> Get a Quote or Start a Free Trial Today. >> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >> _______________________________________________ >> Jmdns-discuss mailing list >> Jmd...@li... >> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss > > -- > Tìoraidh! > > Rick Blair > ric...@ma... > > > |
From: Nuno S. <nun...@im...> - 2014-01-16 11:50:31
|
Rick, I have asked about this at Apple's Bonjour dev list. This was what I got. Please understand that I completely respect your work and I'm not criticizing it. I just want to contribute for making it even better. On Jan 15, 2014, at 5:52 AM, Nuno Santos<nun...@im...> wrote: > Hi, > > My question is simple... Should a service have a fixed port number? The port number should be stable for the life of the registration, but beyond that no. > I have a service that uses a Qt wrapper around Apple Bonjour libs. Everytime I restart the service a new port number is assigned. I have never looked to the wrapper sources to understand this because I thought it was a normal behaviour. It is typical for transient user session services ("Bob's Music Library"), less so for system services (e.g. CUPS). > On my client app, a iOS app, NetService browser never had problem in detecting the new service with the new associated port. > > The problem is that i'm using a Java lib (jmDNS) to implement the same service discovery on a Android app. This lib doesn't give me the new port number. Instead, it reports me the last service port number. It caches the port number. Caching is allowed, with the recommended TTL being 120 seconds for the SRV, A, AAAA, and PTR records. If jmDNS does not honor the advertised TTL then that would be a bug, particularly if it doesn't honor "goodbye" packets with a TTL of 0 to purge a service that is no longer available. > After putting this problem in the dev list of this lib, I have been told: > > "I think your case is fairly unique. Services typically dont change ports between runs. That is a service listens to a specific port and not some random one picked at startup. That is a service could be defined by the port it listens on." That isn't correct, and in fact multiple service registrations MAY be multiplexed over the same port - this is quite common for printer sharing from CUPS, for example. > I consider this behaviour a bug in jmDNS implementation. I would like to hear the point of view of experienced ZeroConf protocol users and developers in order to better understand this. Indefinite caching would be a bug - port numbers, addresses, etc. can change at any time, so the advertised TTL needs to be respected when caching. _________________________________________________________ Michael Sweet, Senior Printing System Engineer, PWG Chair > Should a service have a fixed port number? "Should" is not exactly definitive (-: It's not a bad idea to achieve some degree of port stability. When a client discovers a service via Bonjour and then connects to it, it finds the port number in the SRV record. mDNS SRV records have (by default) a TTL of 2 minutes, so if the port changes then a client can end up connecting to the wrong port for a while. mDNS takes steps to try to tighten up this window, but there's always going to be a window. Having said that, if your port number is changing relatively infrequently that shouldn't ever be a problem. Lots of apps use dynamic ports with very few problems in the real world. Share and Enjoy -- Quinn "The Eskimo!"<http://www.apple.com/developer/> Apple Developer Relations, Developer Technical Support, Core OS/Hardware On 01/15/2014 12:44 AM, Rick Blair wrote: > Hi Nuno, > > I think your case is fairly unique. Services typically dont change ports between runs. That is a service listens to a specific port and not some random one picked at startup. That is a service could be defined by the port it listens on. > > Is there anyway to pick a port and stay with it? > > Rick > On Jan 14, 2014, at 3:27 PM, Nuno Santos wrote: > >> Hi Will, >> >> Thanks for your reply. >> >> My problem is the following. >> >> I have been using jmDNS and i'm experiencing a problem with service port caching. >> >> The lib detected the service, but if the service is stopped and started again, jmDNS reports the service with the last port. >> >> Have you ever experienced such phenomena? How did you workaround it? >> >> Thanks, >> >> Regards, >> >> Nuno >> >> On 14/01/2014, at 22:59, Will Hawkins <haw...@op...> wrote: >> >>> Yup. Ask away. >>> >>> On 01/14/2014 05:15 PM, Nuno Santos wrote: >>>> Hi, >>>> >>>> I would like to discuss an issue i'm experiencing with jmDNS. Is there anyone currently using jmDNS actively on an Android application? >>>> >>>> Regards, >>>> >>>> Nuno Santos >>>> ------------------------------------------------------------------------------ >>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>>> Critical Workloads, Development Environments & Everything In Between. >>>> Get a Quote or Start a Free Trial Today. >>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Jmdns-discuss mailing list >>>> Jmd...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >>>> >>> ------------------------------------------------------------------------------ >>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>> Critical Workloads, Development Environments & Everything In Between. >>> Get a Quote or Start a Free Trial Today. >>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Jmdns-discuss mailing list >>> Jmd...@li... >>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >> >> ------------------------------------------------------------------------------ >> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >> Learn Why More Businesses Are Choosing CenturyLink Cloud For >> Critical Workloads, Development Environments & Everything In Between. >> Get a Quote or Start a Free Trial Today. >> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >> _______________________________________________ >> Jmdns-discuss mailing list >> Jmd...@li... >> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss |
From: Nuno S. <nun...@im...> - 2014-01-15 08:00:42
|
Will, I first developed my service using a Qt wrapper around apple dnsd libs. I have not implemented the details. To understand if I can or not choose the creation of a service with a fixed port number I need to analyze the code. However, I think this is a small detail that was interpreted that way from the point of view of jmDNS developers (not sure if you are one of them or not) because, if this is not normal, why does NetService API from iOS SDK supports it? I had never had any problem with this. If you run mdnsresponder in browser mode, it will give you the current service port number and not the cached one. Is there any practical implication beside liberty in having the port number updated? I really wanted to avoid the service update as it doesn't make sense. I would prefer to disable port caching on jmDNS. My proposal is that this should become a standard for jmDNS. I would also like that to understand why does jmDNS needs almost 10 seconds to detect the first service as well as it's removal. If jmDNS developer don't find my proposal reasonable, I would love that someone could point me some clues on how to change that by myself without having to read and understand all the code. Thx in advance With my best regards, -- Nuno Santos No dia 15/01/2014, às 00:44, Rick Blair <ric...@ma...> escreveu: > Hi Nuno, > > I think your case is fairly unique. Services typically dont change ports between runs. That is a service listens to a specific port and not some random one picked at startup. That is a service could be defined by the port it listens on. > > Is there anyway to pick a port and stay with it? > > Rick >> On Jan 14, 2014, at 3:27 PM, Nuno Santos wrote: >> >> Hi Will, >> >> Thanks for your reply. >> >> My problem is the following. >> >> I have been using jmDNS and i'm experiencing a problem with service port caching. >> >> The lib detected the service, but if the service is stopped and started again, jmDNS reports the service with the last port. >> >> Have you ever experienced such phenomena? How did you workaround it? >> >> Thanks, >> >> Regards, >> >> Nuno >> >>> On 14/01/2014, at 22:59, Will Hawkins <haw...@op...> wrote: >>> >>> Yup. Ask away. >>> >>>> On 01/14/2014 05:15 PM, Nuno Santos wrote: >>>> Hi, >>>> >>>> I would like to discuss an issue i'm experiencing with jmDNS. Is there anyone currently using jmDNS actively on an Android application? >>>> >>>> Regards, >>>> >>>> Nuno Santos >>>> ------------------------------------------------------------------------------ >>>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>>> Critical Workloads, Development Environments & Everything In Between. >>>> Get a Quote or Start a Free Trial Today. >>>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Jmdns-discuss mailing list >>>> Jmd...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >>> >>> ------------------------------------------------------------------------------ >>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>> Critical Workloads, Development Environments & Everything In Between. >>> Get a Quote or Start a Free Trial Today. >>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Jmdns-discuss mailing list >>> Jmd...@li... >>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >> >> >> ------------------------------------------------------------------------------ >> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >> Learn Why More Businesses Are Choosing CenturyLink Cloud For >> Critical Workloads, Development Environments & Everything In Between. >> Get a Quote or Start a Free Trial Today. >> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >> _______________________________________________ >> Jmdns-discuss mailing list >> Jmd...@li... >> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss > > -- > Tìoraidh! > > Rick Blair > ric...@ma... > > > |
From: Rick B. <ric...@ma...> - 2014-01-15 01:44:18
|
Hi Nuno, I think your case is fairly unique. Services typically dont change ports between runs. That is a service listens to a specific port and not some random one picked at startup. That is a service could be defined by the port it listens on. Is there anyway to pick a port and stay with it? Rick On Jan 14, 2014, at 3:27 PM, Nuno Santos wrote: > Hi Will, > > Thanks for your reply. > > My problem is the following. > > I have been using jmDNS and i'm experiencing a problem with service port caching. > > The lib detected the service, but if the service is stopped and started again, jmDNS reports the service with the last port. > > Have you ever experienced such phenomena? How did you workaround it? > > Thanks, > > Regards, > > Nuno > > On 14/01/2014, at 22:59, Will Hawkins <haw...@op...> wrote: > >> Yup. Ask away. >> >> On 01/14/2014 05:15 PM, Nuno Santos wrote: >>> Hi, >>> >>> I would like to discuss an issue i'm experiencing with jmDNS. Is there anyone currently using jmDNS actively on an Android application? >>> >>> Regards, >>> >>> Nuno Santos >>> ------------------------------------------------------------------------------ >>> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >>> Learn Why More Businesses Are Choosing CenturyLink Cloud For >>> Critical Workloads, Development Environments & Everything In Between. >>> Get a Quote or Start a Free Trial Today. >>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Jmdns-discuss mailing list >>> Jmd...@li... >>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >>> >> >> ------------------------------------------------------------------------------ >> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >> Learn Why More Businesses Are Choosing CenturyLink Cloud For >> Critical Workloads, Development Environments & Everything In Between. >> Get a Quote or Start a Free Trial Today. >> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >> _______________________________________________ >> Jmdns-discuss mailing list >> Jmd...@li... >> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss > > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > _______________________________________________ > Jmdns-discuss mailing list > Jmd...@li... > https://lists.sourceforge.net/lists/listinfo/jmdns-discuss -- Tìoraidh! Rick Blair ric...@ma... |
From: Nuno S. <nun...@im...> - 2014-01-14 23:27:32
|
Hi Will, Thanks for your reply. My problem is the following. I have been using jmDNS and i'm experiencing a problem with service port caching. The lib detected the service, but if the service is stopped and started again, jmDNS reports the service with the last port. Have you ever experienced such phenomena? How did you workaround it? Thanks, Regards, Nuno On 14/01/2014, at 22:59, Will Hawkins <haw...@op...> wrote: > Yup. Ask away. > > On 01/14/2014 05:15 PM, Nuno Santos wrote: >> Hi, >> >> I would like to discuss an issue i'm experiencing with jmDNS. Is there anyone currently using jmDNS actively on an Android application? >> >> Regards, >> >> Nuno Santos >> ------------------------------------------------------------------------------ >> CenturyLink Cloud: The Leader in Enterprise Cloud Services. >> Learn Why More Businesses Are Choosing CenturyLink Cloud For >> Critical Workloads, Development Environments & Everything In Between. >> Get a Quote or Start a Free Trial Today. >> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk >> _______________________________________________ >> Jmdns-discuss mailing list >> Jmd...@li... >> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >> > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > _______________________________________________ > Jmdns-discuss mailing list > Jmd...@li... > https://lists.sourceforge.net/lists/listinfo/jmdns-discuss |
From: Will H. <haw...@op...> - 2014-01-14 23:24:23
|
Yup. Ask away. On 01/14/2014 05:15 PM, Nuno Santos wrote: > Hi, > > I would like to discuss an issue i'm experiencing with jmDNS. Is there anyone currently using jmDNS actively on an Android application? > > Regards, > > Nuno Santos > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > _______________________________________________ > Jmdns-discuss mailing list > Jmd...@li... > https://lists.sourceforge.net/lists/listinfo/jmdns-discuss > |
From: Nuno S. <nun...@im...> - 2014-01-14 22:15:48
|
Hi, I would like to discuss an issue i'm experiencing with jmDNS. Is there anyone currently using jmDNS actively on an Android application? Regards, Nuno Santos |
From: Nuno S. <nun...@im...> - 2014-01-09 23:06:28
|
Rick, Did you ever get a chance to review this issue? My workaround of disabling the cache isn't a complete solution as the application doesn't discover the registered service without shutting it down and starting it over again. If possible I would like to a some indications on where I should look better for the problem. Thanks in advance With my best regards, Nuno Santos On 11/11/2013, at 19:27, Nuno Santos <nun...@im...> wrote: > Rick, > > I don’t know if this helps but I have done the following: > > In JmDNSImpl.java, in the getServiceInfoFromCache(… I have commented all the cache stuff. > > In my case, this seems to be working. I’m supposedly forcing a new resolve every time. Since I don’t know the code, that’s enough for me, I but I think it would be nice to have this fixed on the source code. > > See bellow. > > Regards, > > Nuno > > ServiceInfoImpl getServiceInfoFromCache(String type, String name, String subtype, boolean persistent) { > // Check if the answer is in the cache. > ServiceInfoImpl info = new ServiceInfoImpl(type, name, subtype, 0, 0, 0, persistent, (byte[]) null); > /* > DNSEntry pointerEntry = this.getCache().getDNSEntry(new DNSRecord.Pointer(type, DNSRecordClass.CLASS_ANY, false, 0, info.getQualifiedName())); > if (pointerEntry instanceof DNSRecord) { > ServiceInfoImpl cachedInfo = (ServiceInfoImpl) ((DNSRecord) pointerEntry).getServiceInfo(persistent); > if (cachedInfo != null) { > // To get a complete info record we need to retrieve the service, address and the text bytes. > > Map<Fields, String> map = cachedInfo.getQualifiedNameMap(); > byte[] srvBytes = null; > String server = ""; > DNSEntry serviceEntry = this.getCache().getDNSEntry(info.getQualifiedName(), DNSRecordType.TYPE_SRV, DNSRecordClass.CLASS_ANY); > if (serviceEntry instanceof DNSRecord) { > ServiceInfo cachedServiceEntryInfo = ((DNSRecord) serviceEntry).getServiceInfo(persistent); > if (cachedServiceEntryInfo != null) { > cachedInfo = new ServiceInfoImpl(map, cachedServiceEntryInfo.getPort(), cachedServiceEntryInfo.getWeight(), cachedServiceEntryInfo.getPriority(), persistent, (byte[]) null); > srvBytes = cachedServiceEntryInfo.getTextBytes(); > server = cachedServiceEntryInfo.getServer(); > } > } > DNSEntry addressEntry = this.getCache().getDNSEntry(server, DNSRecordType.TYPE_A, DNSRecordClass.CLASS_ANY); > if (addressEntry instanceof DNSRecord) { > ServiceInfo cachedAddressInfo = ((DNSRecord) addressEntry).getServiceInfo(persistent); > if (cachedAddressInfo != null) { > for (Inet4Address address : cachedAddressInfo.getInet4Addresses()) { > cachedInfo.addAddress(address); > } > cachedInfo._setText(cachedAddressInfo.getTextBytes()); > } > } > addressEntry = this.getCache().getDNSEntry(server, DNSRecordType.TYPE_AAAA, DNSRecordClass.CLASS_ANY); > if (addressEntry instanceof DNSRecord) { > ServiceInfo cachedAddressInfo = ((DNSRecord) addressEntry).getServiceInfo(persistent); > if (cachedAddressInfo != null) { > for (Inet6Address address : cachedAddressInfo.getInet6Addresses()) { > cachedInfo.addAddress(address); > } > cachedInfo._setText(cachedAddressInfo.getTextBytes()); > } > } > DNSEntry textEntry = this.getCache().getDNSEntry(cachedInfo.getQualifiedName(), DNSRecordType.TYPE_TXT, DNSRecordClass.CLASS_ANY); > if (textEntry instanceof DNSRecord) { > ServiceInfo cachedTextInfo = ((DNSRecord) textEntry).getServiceInfo(persistent); > if (cachedTextInfo != null) { > cachedInfo._setText(cachedTextInfo.getTextBytes()); > } > } > if (cachedInfo.getTextBytes().length == 0) { > cachedInfo._setText(srvBytes); > } > if (cachedInfo.hasData()) { > info = cachedInfo; > } > } > } > */ > return info; > } > > On 10 Nov 2013, at 14:21, Nuno Santos <nun...@im...> wrote: > >> Rick, >> >> Thanks for your reply. >> >> Is there any chance of the record is being cached? When a new service is detected, the cache gets the port from the last service announcement. I have download the source code and saw that there is a cache. My lack of knowledge with this code will take me forever to find the problem. However, i'm completely available to help in anyhow. >> >> Regards, >> >> Nuno Santos >> >> On 10/11/2013, at 02:19, Rick Blair <ric...@ma...> wrote: >> >>> Hi Nuno, >>> >>> I will see what I can find. Sounds like a bug. Or it could be a timeout issue. >>> >>> Rick >>> >>> On Nov 9, 2013, at 9:35 AM, Nuno Santos wrote: >>> >>>> Hi, >>>> >>>> I'm using jmDNS to discover a service registered by another application. jmDNS in this case is just a network service listener, serving as client. >>>> >>>> The problem i'm being faced to is the following: >>>> >>>> - I start my application using jmDNS >>>> - I start the application that registers the Bonjour service >>>> - Service and port is correctly announced >>>> - I quite the app that registers the service >>>> - jmDNS detects the service was removed correctly after a while >>>> - I start the service again >>>> - jmDNS reports the service again, but with the port of the last registered service. >>>> >>>> >>>> My application get unusable from now on because it can't connect to the service port number. >>>> >>>> The question here is. Is my problem? Should I been doing something that i'm not? Or is this a bug? >>>> >>>> Below is that class the registers jmDNS and handle is listeners. >>>> >>>> Any ideas? >>>> >>>> Thanks, >>>> >>>> Regards, >>>> >>>> Nuno Santos >>>> >>>> public class LKBridgeBrowser extends Thread >>>> { >>>> private boolean running = true; >>>> private JmDNS jmdns; >>>> private String type = "_livkontrol._tcp.local."; >>>> private ServiceListener listener; >>>> private static String ipAddress; >>>> private Handler handler; >>>> >>>> private static LKBridgeBrowser singleton; >>>> >>>> private SharedPreferences prefs; >>>> >>>> public LKBridgeBrowser(String address) >>>> { >>>> ipAddress = address; >>>> } >>>> >>>> @Override >>>> public void run() >>>> { >>>> try >>>> { >>>> Log.d(LKApplication.TAG, "Bridge browser started"); >>>> >>>> InetAddress addr = InetAddress.getByName(ipAddress); >>>> >>>> jmdns = JmDNS.create(addr); >>>> >>>> jmdns.setDelegate(new JmDNS.Delegate() { >>>> @Override >>>> public void cannotRecoverFromIOError(JmDNS jmDNS, Collection<ServiceInfo> serviceInfos) { >>>> >>>> Log.d(LKApplication.TAG, "Service discovery Delegate ::cannotRecoverFromIOError() " + serviceInfos.size()); >>>> } >>>> }); >>>> >>>> jmdns.addServiceListener(type, listener = new ServiceListener() >>>> { >>>> public void serviceAdded(ServiceEvent ev) >>>> { >>>> jmdns.requestServiceInfo(ev.getType(), ev.getName(), true, 1000); >>>> } >>>> >>>> public void serviceResolved(ServiceEvent ev) >>>> { >>>> ServiceInfo info = ev.getInfo(); >>>> >>>> Log.d(LKApplication.TAG, "Bridge added:" + info.getName() + " on " + info.getHostAddress() + ":" + info.getPort()); >>>> >>>> Bundle bridgeInfo = new Bundle(); >>>> bridgeInfo.putString("event", "bridge_added"); >>>> bridgeInfo.putString("bridge_name", info.getName()); >>>> bridgeInfo.putString("bridge_type", "AUTO"); >>>> bridgeInfo.putString("bridge_address", info.getHostAddress()); >>>> bridgeInfo.putInt("bridge_port", info.getPort()); >>>> >>>> Message msg = Message.obtain(); >>>> msg.setData(bridgeInfo); >>>> handler.sendMessage(msg); >>>> } >>>> >>>> public void serviceRemoved(ServiceEvent ev) >>>> { >>>> ServiceInfo info = ev.getInfo(); >>>> >>>> Log.d(LKApplication.TAG, "Bridge removed: " + info.getName() + " on " + info.getHostAddress() + ":" + info.getPort()); >>>> >>>> Bundle bridgeInfo = new Bundle(); >>>> bridgeInfo.putString("event", "bridge_removed"); >>>> bridgeInfo.putString("bridge_name", info.getName()); >>>> bridgeInfo.putString("bridge_type", "AUTO"); >>>> bridgeInfo.putString("bridge_address", info.getHostAddress()); >>>> bridgeInfo.putInt("bridge_port", info.getPort()); >>>> >>>> Message msg = Message.obtain(); >>>> msg.setData(bridgeInfo); >>>> handler.sendMessage(msg); >>>> } >>>> }); >>>> } >>>> catch (IOException e) >>>> { >>>> e.printStackTrace(); >>>> } >>>> >>>> while (running) >>>> { >>>> try >>>> { >>>> sleep(100); >>>> } >>>> catch (InterruptedException e) >>>> { >>>> e.printStackTrace(); >>>> } >>>> } >>>> >>>> if (jmdns != null) >>>> { >>>> if (listener != null) >>>> { >>>> jmdns.removeServiceListener(type, listener); >>>> listener = null; >>>> } >>>> >>>> try >>>> { >>>> jmdns.close(); >>>> } >>>> catch (IOException e) >>>> { >>>> Log.d(LKApplication.TAG, "IOException caught when trying to close JMDNS..."); >>>> e.printStackTrace(); >>>> } >>>> >>>> jmdns = null; >>>> } >>>> >>>> singleton = null; >>>> >>>> Log.d(LKApplication.TAG, "Bridge browser stopped"); >>>> } >>>> >>>> public void terminate() >>>> { >>>> running = false; >>>> } >>>> } >>>> ------------------------------------------------------------------------------ >>>> November Webinars for C, C++, Fortran Developers >>>> Accelerate application performance with scalable programming models. Explore >>>> techniques for threading, error checking, porting, and tuning. Get the most >>>> from the latest Intel processors and coprocessors. See abstracts and register >>>> http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk >>>> _______________________________________________ >>>> Jmdns-discuss mailing list >>>> Jmd...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss >>> >>> -- >>> Tìoraidh! >>> >>> Rick Blair >>> ric...@ma... >>> >>> >>> >> > |
From: George N. (v. Twitter) <con...@tw...> - 2013-11-28 22:46:18
|
George Nychis sent you an invitation Twitter helps you stay connected with what's happening right now and with the people and organizations you care about. Accept invitation https://twitter.com/i/e630f044-747f-4da3-b012-5cee8f7d7623 -- This message was sent by Twitter on behalf of Twitter users who entered your email address to invite you to Twitter. Unsubscribe: https://twitter.com/i/o?t=1&iid=33243465cac54995b86c35ddad648a64&uid=0&c=2eL5DdrL6vDtzy2cccoYJBB3IIM7EYgqjFSvYg0BcMyJ1%2Bm20hv7kA%3D%3D&nid=9+26 Need help? https://support.twitter.com |
From: Nuno S. <nun...@im...> - 2013-11-09 18:10:25
|
Hi, I'm using jmDNS to discover a service registered by another application. jmDNS in this case is just a network service listener, serving as client. The problem i'm being faced to is the following: - I start my application using jmDNS - I start the application that registers the Bonjour service - Service and port is correctly announced - I quite the app that registers the service - jmDNS detects the service was removed correctly after a while - I start the service again - jmDNS reports the service again, but with the port of the last registered service. My application get unusable from now on because it can't connect to the service port number. The question here is. Is my problem? Should I been doing something that i'm not? Or is this a bug? Below is that class the registers jmDNS and handle is listeners. Any ideas? Thanks, Regards, Nuno Santos public class LKBridgeBrowser extends Thread { private boolean running = true; private JmDNS jmdns; private String type = "_livkontrol._tcp.local."; private ServiceListener listener; private static String ipAddress; private Handler handler; private static LKBridgeBrowser singleton; private SharedPreferences prefs; public LKBridgeBrowser(String address) { ipAddress = address; } @Override public void run() { try { Log.d(LKApplication.TAG, "Bridge browser started"); InetAddress addr = InetAddress.getByName(ipAddress); jmdns = JmDNS.create(addr); jmdns.setDelegate(new JmDNS.Delegate() { @Override public void cannotRecoverFromIOError(JmDNS jmDNS, Collection<ServiceInfo> serviceInfos) { Log.d(LKApplication.TAG, "Service discovery Delegate ::cannotRecoverFromIOError() " + serviceInfos.size()); } }); jmdns.addServiceListener(type, listener = new ServiceListener() { public void serviceAdded(ServiceEvent ev) { jmdns.requestServiceInfo(ev.getType(), ev.getName(), true, 1000); } public void serviceResolved(ServiceEvent ev) { ServiceInfo info = ev.getInfo(); Log.d(LKApplication.TAG, "Bridge added:" + info.getName() + " on " + info.getHostAddress() + ":" + info.getPort()); Bundle bridgeInfo = new Bundle(); bridgeInfo.putString("event", "bridge_added"); bridgeInfo.putString("bridge_name", info.getName()); bridgeInfo.putString("bridge_type", "AUTO"); bridgeInfo.putString("bridge_address", info.getHostAddress()); bridgeInfo.putInt("bridge_port", info.getPort()); Message msg = Message.obtain(); msg.setData(bridgeInfo); handler.sendMessage(msg); } public void serviceRemoved(ServiceEvent ev) { ServiceInfo info = ev.getInfo(); Log.d(LKApplication.TAG, "Bridge removed: " + info.getName() + " on " + info.getHostAddress() + ":" + info.getPort()); Bundle bridgeInfo = new Bundle(); bridgeInfo.putString("event", "bridge_removed"); bridgeInfo.putString("bridge_name", info.getName()); bridgeInfo.putString("bridge_type", "AUTO"); bridgeInfo.putString("bridge_address", info.getHostAddress()); bridgeInfo.putInt("bridge_port", info.getPort()); Message msg = Message.obtain(); msg.setData(bridgeInfo); handler.sendMessage(msg); } }); } catch (IOException e) { e.printStackTrace(); } while (running) { try { sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } if (jmdns != null) { if (listener != null) { jmdns.removeServiceListener(type, listener); listener = null; } try { jmdns.close(); } catch (IOException e) { Log.d(LKApplication.TAG, "IOException caught when trying to close JMDNS..."); e.printStackTrace(); } jmdns = null; } singleton = null; Log.d(LKApplication.TAG, "Bridge browser stopped"); } public void terminate() { running = false; } } |
From: Cha G. <cha...@gm...> - 2013-06-05 15:47:20
|
Host name with underscore such as foo_bar.local. will be incorrectly parsed as: foo_bar.local. -> Instance=foo_bar, Domain=, Subtype=, Application=foo_bar.local, Protocol= It then creates a wrong key when added to the cache : foo_bar.foo_bar.local.. which results in the host name not getting resolved even if the entry is there in the cache Correct parsing should be: foo_bar.local. -> Instance=foo_bar, Domain=local, Subtype=, Application=, Protocol= |
From: Christian B. <don...@fr...> - 2013-06-04 10:43:31
|
Hi all, I wasn't able to add a 'Patches' ticket over at https://sourceforge.net/p/jmdns/patches/, so I'm sending my contribution in here. If there's a better place, please don't hesitate to point me in the right direction... So, the rationale: Without this patch, jmDNS service publishing fails on some Android devices with a ENODEV error in _socket.joinGroup() when in softAP mode. Specififying the network interface fixes this. Attached patch against current SVN trunk. Cheers, Christian |
From: Will H. <haw...@op...> - 2013-03-15 03:27:58
|
Hello everyone! I've been going through the source to figure out exactly when probing for domains/services is done. I know that it is done on create() (obviously), but I am trying to get a sense of when else it is done. I can see that there are probes started when registration of a service happens, but other than that I am stumped. I ask because I'm trying to get the browser to recognize services that go online/offline after the initial scan. As I'm using it, the library does not appear to see those changes. It's definitely possible that I'm just using the API wrong! Thanks for your help on this query. I know you're all busy with other projects and I appreciate your time! Will |
From: Will H. <haw...@op...> - 2013-03-04 19:43:14
|
Hello Pierre, Now it's my turn to apologize for not answering sooner! Thanks for taking a look at this. I will pull the TOT for my development from now on. Keep up the great work! Will On 02/22/2013 03:14 PM, Pierre Frisch wrote: > Sorry for not answering earlier, I am swamped and jmdns is not my day job. This fix is already in the TOT. I really need to create a new release… > > Pierre > > On 2013-02-15, at 11:16, Will Hawkins <haw...@op...> wrote: > >> Hello Pierre (and all jmdns users/devs), >> >> First, I am a huge fan of this library. Thanks for all the work that you >> do on development and keeping it up-to-date. >> >> I recently discovered a very strange, frustrating situation that causes >> jmdns to fail to invoke the service resolved callback. Here's the case: >> >> The service resolved callback is located/invoked from the name/type of >> the DNS response record that completes a service's resolution (See >> ServiceInfoImpl.java:924). In the case when a A/AAAA record is the DNS >> response that completes the service resolution, the getName() and >> getType() of the event that is generated from that DNS record does not >> match the name/type of the resolved service. >> >> Most of the time this is not a problem. However, avahi orders responses >> to service resolution requests in such a way that this bug is >> consistently triggered. I have attached a very simple patch that solves >> this problem by using getName() and getType() of the ServiceInfoImpl >> (i.e., this) instead. >> >> I hope that I've explained the problem correctly/succinctly and I hope >> that you find this patch useful. Thanks again for your work on this >> great library. >> >> Will >> >> PS: Please cc me on responses; I'm not subscribed to the list. >> <ServiceInfoImpl.java.patch>------------------------------------------------------------------------------ >> The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, >> is your hub for all things parallel software development, from weekly thought >> leadership blogs to news, videos, case studies, tutorials, tech docs, >> whitepapers, evaluation guides, and opinion stories. Check out the most >> recent posts - join the conversation now. http://goparallel.sourceforge.net/_______________________________________________ >> Jmdns-discuss mailing list >> Jmd...@li... >> https://lists.sourceforge.net/lists/listinfo/jmdns-discuss > > |
From: Thomas L. <tla...@si...> - 2013-02-25 16:31:39
|
Hello Pierre, I have to say that you, Arthur and Rick did a great job with JmDNS. Currently, I am developping an Android application for home automation with JmDNS. I have to follow some rules in order to communicate with other devices, and, naturally, something goes wrong a device: I have to format the Service name to end with ".local" , here is the declaration I wrote : serviceInfo = ServiceInfo.create("_mydevice._tcp.local.", "P-000422334455-mydevice.local", 8080, 0, 0, true, properties); When i use avahi-discover, the domain is incorrect, the ".local" is now a the beginning of the domain name: Found service 'P-000422334455-mydevice' of type '' in domain 'local._mydevice._tcp.local' I am trying to resolve this by making some code in decodeQualifiedNameMapForType of ServiceInfoImpl.java, but it still doesn't look good (i'm using jmdns 3.4.1). Please, could you give to give me a hand on this, Is there another part in the code that i should modify ? Thanks a lot ! Tom LAURENT |
From: Pierre F. <pie...@sp...> - 2013-02-22 20:40:19
|
Sorry for not answering earlier, I am swamped and jmdns is not my day job. This fix is already in the TOT. I really need to create a new release… Pierre On 2013-02-15, at 11:16, Will Hawkins <haw...@op...> wrote: > Hello Pierre (and all jmdns users/devs), > > First, I am a huge fan of this library. Thanks for all the work that you > do on development and keeping it up-to-date. > > I recently discovered a very strange, frustrating situation that causes > jmdns to fail to invoke the service resolved callback. Here's the case: > > The service resolved callback is located/invoked from the name/type of > the DNS response record that completes a service's resolution (See > ServiceInfoImpl.java:924). In the case when a A/AAAA record is the DNS > response that completes the service resolution, the getName() and > getType() of the event that is generated from that DNS record does not > match the name/type of the resolved service. > > Most of the time this is not a problem. However, avahi orders responses > to service resolution requests in such a way that this bug is > consistently triggered. I have attached a very simple patch that solves > this problem by using getName() and getType() of the ServiceInfoImpl > (i.e., this) instead. > > I hope that I've explained the problem correctly/succinctly and I hope > that you find this patch useful. Thanks again for your work on this > great library. > > Will > > PS: Please cc me on responses; I'm not subscribed to the list. > <ServiceInfoImpl.java.patch>------------------------------------------------------------------------------ > The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, > is your hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials, tech docs, > whitepapers, evaluation guides, and opinion stories. Check out the most > recent posts - join the conversation now. http://goparallel.sourceforge.net/_______________________________________________ > Jmdns-discuss mailing list > Jmd...@li... > https://lists.sourceforge.net/lists/listinfo/jmdns-discuss |
From: Will H. <haw...@op...> - 2013-02-15 19:33:09
|
Hello Pierre (and all jmdns users/devs), First, I am a huge fan of this library. Thanks for all the work that you do on development and keeping it up-to-date. I recently discovered a very strange, frustrating situation that causes jmdns to fail to invoke the service resolved callback. Here's the case: The service resolved callback is located/invoked from the name/type of the DNS response record that completes a service's resolution (See ServiceInfoImpl.java:924). In the case when a A/AAAA record is the DNS response that completes the service resolution, the getName() and getType() of the event that is generated from that DNS record does not match the name/type of the resolved service. Most of the time this is not a problem. However, avahi orders responses to service resolution requests in such a way that this bug is consistently triggered. I have attached a very simple patch that solves this problem by using getName() and getType() of the ServiceInfoImpl (i.e., this) instead. I hope that I've explained the problem correctly/succinctly and I hope that you find this patch useful. Thanks again for your work on this great library. Will PS: Please cc me on responses; I'm not subscribed to the list. |
From: George N. <gn...@gm...> - 2012-11-01 19:07:38
|
After some debugging of the actual event type that comes in, the event type resolves to "_tcp.in-addr.arpa." Adding this to my service listeners triggers the call back. On Wed, Oct 31, 2012 at 4:38 PM, George Nychis <gn...@gm...> wrote: > Hi all, > > I am trying to setup some ServiceListeners, in particular two: > > zeroConf.addServiceListener("100.1.168.192.in-addr.arpa.", myListener); > zeroConf.addServiceListener("_workstation._tcp.local.", myListener); > > Whenever I do this, I get callbacks for myListener on serviceResolved() > and serviceAdded() for all services that match "_workstation._tcp.local." > However, I get no callbacks for "100.1.168.192.in-addr.arpa." ... despite > the fact that jmDns sends out the queries, and a response comes back! I've > attached a tcpdump of the request packets that jmdns sends out, and the > response that comes back for it. However, the callbacks are not called so > I never see the response in my application. > > Does anyone know why this might be happening? > > Thanks! > George > |