User manual

266Bibliotheken
© 2013 Conrad Electronic
byte tcp_buf[ETH_BUF(4000,6)], rbuf[1461];
void main(void)
{
word info[4], plen;
char cmdtxt[50];
dword ip;
byte id, state;
ETH_SetConnBuf(tcp_buf, 4000, 6);
id= ETH_ConnectTCP(IP_ADDR(192,168,0,1), 80);
state= ES_CONNECTING;
while(state == ES_CONNECTING)
{
state= ETH_GetStateTCP(id);
}
if(state == ES_CONNECTED)
{
cmdtxt= "GET / HTTP/1.1\n\n";
ETH_SendTCP(id, cmdtxt, Str_Len(cmdtxt));
while(1)
{
ip= ETH_CheckReceiveBuf(info);
if(ip)
{
plen= info[3];
if(plen > 1460) plen= 1460; // auf 1460 bytes begrenzen
ETH_ReceiveData(rbuf, plen);
}
}
}
}
Das folgende Beispiel wartet auf eingehende Verbindungen auf Port 23 (Telnet). Die Daten werden in
rbuf abgeholt aber nicht weiter verarbeitet:
byte tcp_buf[ETH_BUF(4000,6)], rbuf[200]; // 4000 byte Empfangspuffer
void main(void)
{
word info[4], plen;
dword ip;