query jest procedurą umieszczoną w bibliotece DNS, którą pobrałem ze strony tibbo
'form the DNS query string and send the query to DNS server
public function Query(sQueryName as string) as string
dim sDNSQuery as string
dim sQFlag as string
dim i as byte
dim sTemp as string
sDNSQuery = BinaryConverter(bin(wID),sDNSQuery)
sQFlag = "0"+ sOPCode + "00" + sRD + "00000000"
sDNSQuery = sDNSQuery + chr(val("&b"+ left(sQFlag,8))) + chr(val("&b"+ right(sQFlag,8)))
sDNSQuery = BinaryConverter(bin(wQDCount),sDNSQuery)
sDNSQuery = sDNSQuery + chr(0) + chr(0) + chr(0) + chr(0) + chr(0) + chr (0)
sQueryName = sQueryName + "."
do while instr(1,sQueryName,".",1) > 0
dim bPos as byte
bPos = instr(1,sQueryName,".",1)
sTemp = sTemp + chr(bPos-1) + left(sQueryName, bPos-1)
sQueryName = right(sQueryName, len(sQueryName)-bPos)
loop
sQuestion = sTemp
sDNSQuery = sDNSQuery + sQuestion + chr(0)
sDNSQuery = BinaryConverter(bin(wQType),sDNSQuery)
sDNSQuery = BinaryConverter(bin(wQClass),sDNSQuery)
sock.num = 0
sock.setdata(sDNSQuery)
sock.send
Query = sDNSQuery
end function
Tego problemu nie udało mi się rozwwiązać dla adresu rss.weather.com jednak kiedy odpytuje przy użyciu google weather wszytsko działa
if sock.num = 0 and sock.statesimple = PL_SSTS_EST then
Query("www.google.com")
end if
if sock.num = 1 and sock.statesimple = PL_SSTS_EST then
sock.setdata("GET /ig/api?hl=pl&weather=Poznan")
sock.setdata(chr(13)+ chr(10))
sock.setdata(chr(13)+ chr(10))'dla rss
sock.send
end if
Teraz pojawił się inny problem. Po pobraniu danych pogodowych umieszczam je w stringu o w którym dane pogodowe są oddzielone za pomocą "/" i staram się je wyświetlić na stronie. Kiedy string składa się z trzech danych temperatura/warunki/wilgotność wszytsko działa, jednak kiedy dodaje kolejne dane nie wyświetla się nic.
Konfiguracja gniazda:
sock.num = 2 'do prezentacji danych na stronie
sock.rxbuffrq(1)
sock.txbuffrq(1)
sock.varbuffrq(1)
sock.protocol=PL_SOCK_PROTOCOL_TCP
sock.httpmode=YES
sock.inconmode=PL_SOCK_INCONMODE_ANY_IP_ANY_PORT
sock.httpportlist="80"
</code>
Kod html:
<code>
<script type="text/javascript">
var temp = "";
var rain = "";
var humi = "";
/*
var ltempa = "":
var htempa = "";
var cona = "";
var ltempb = "":
var htempb = "";
var conb = "";
var ltempc = "":
var htempc = "";
var conc = "";
*/
var help = "";
var helssplit = "";
var t
function load()
{
help = "<?sock.num=2 sock.setdata(alldata) sock.send?>";
helpsplit = help.split("/");
document.getElementById('itemp').value = temp;
temp = helpsplit[0];
document.getElementById('irain').value = rain;
rain = helpsplit[1];
document.getElementById('ihumi').value = humi;
humi = helpsplit[2];
/*
document.getElementById('iltempa').value = ltempa;
ltempa = helpsplit[3];
document.getElementById('ihtempa').value = htempa;
htempa = helpsplit[4];
document.getElementById('icona').value = cona;
cona = helpsplit[5];
*/
t=setTimeout("load()",1000);
}
</script>
<BODY onload="load()">
<div class="border1">
<form>
<table border="2" cellspacing="0" cellpadding="9" >
Pogoda dla Poznania
<tr>
<td>Temperatura:</td>
<td>
<input type="text" id="itemp">°C
</td>
</tr>
<tr>
<td>Warunki atmosferyczne:</td>
<td>
<input type="text" id="irain">
</td>
</tr>
<tr>
<td>Wilgotność:</td>
<td>
<input type="text" id="ihumi">%
</td>
</tr>
<!--
<tr>
<td>Jutro:</td>
<td>Minimalna temperatura:</td>
<td>
<input type="text" id="iltempa">
</td>
<td>Maksymalna temperatura:</td>
<td>
<input type="text" id="iltempa">
</td>
<td>Warunki:</td>
<td>
<input type="text" id="icona">
</td>
</tr>
-->
</table>
</form>