11.12.2012 Aufrufe

Kabel- und Adapter Handbuch

Kabel- und Adapter Handbuch

Kabel- und Adapter Handbuch

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

int main(int argc, char* argv[])<br />

{<br />

SOCKET sS7LAN;<br />

DWORD dwTimeout = 1000L; // 1 Sek<strong>und</strong>e Timeout<br />

int NaggleOn = 1;<br />

struct sockaddr_in sS7LANAdr;<br />

struct linger sLinger;<br />

S7LANINFO sInfo;<br />

WSADATA sWSAData;<br />

printf("S7LAN Watchdog Test V1.00\n\n");<br />

memset(&sInfo,0,sizeof(sInfo));<br />

if (WSAStartup(MAKEWORD(1,1),&sWSAData) != 0) {<br />

printf("WSA Startup fehlerhjaft => Abbruch\n");<br />

return(0);<br />

}<br />

sS7LAN = socket(AF_INET, SOCK_STREAM, 0); //0<br />

if (sS7LAN != INVALID_SOCKET) {<br />

// Sende/Empfangstimeout einstellen<br />

setsockopt( sS7LAN, SOL_SOCKET, SO_SNDTIMEO,(char *)&dwTimeout, sizeof(dwTimeout));<br />

setsockopt( sS7LAN, SOL_SOCKET, SO_RCVTIMEO,(char *)&dwTimeout, sizeof(dwTimeout));<br />

// Naggle-Algorithmus aus<br />

setsockopt(sS7LAN, IPPROTO_TCP, TCP_NODELAY,(char*) &NaggleOn, sizeof(NaggleOn));<br />

sS7LANAdr.sin_family = AF_INET;<br />

sS7LANAdr.sin_port = htons(133); // Port 133; Statistic Service<br />

sS7LANAdr.sin_addr.S_un.S_un_b.s_b1 = 192; // IP-Adresse des S7LAN's<br />

sS7LANAdr.sin_addr.S_un.S_un_b.s_b2 = 168;<br />

sS7LANAdr.sin_addr.S_un.S_un_b.s_b3 = 1;<br />

sS7LANAdr.sin_addr.S_un.S_un_b.s_b4 = 56;<br />

if (connect(sS7LAN, (struct sockaddr *)&sS7LANAdr, sizeof(sS7LANAdr)) != SOCKET_ERROR) {<br />

// etwas senden => daraufhin ende S7LAN antwort<br />

send(sS7LAN, (const char *) "A", 1, 0);<br />

// Daten vom S7LAN empfangen<br />

if (recv(sS7LAN, (char *)&sInfo, sizeof(sInfo), 0)) {<br />

printf("Parity: %s Spikes: %s\nParity: %3d Spikes:<br />

%3d\n",&sInfo.ucASCIIParity[0],&sInfo.ucASCIISpikes[0],(unsigned int)<br />

sInfo.ucBINParity,(unsigned int) sInfo.ucBINSpikes );<br />

} else {<br />

printf("Empfang vom S7LAN gestört\n");<br />

}<br />

}<br />

sLinger.l_linger = 0;<br />

sLinger.l_onoff = 1; // unmittelbar schlieîen<br />

shutdown(sS7LAN,2); // Read and Write<br />

setsockopt(sS7LAN, SOL_SOCKET, SO_LINGER, (char *)&sLinger, sizeof(sLinger));<br />

closesocket(sS7LAN);<br />

} else {<br />

printf("S7LAN nicht ereichbar\n");<br />

}<br />

} else {<br />

printf("Socket nicht öffenbar\n");<br />

}<br />

return 0;<br />

Seite 44 <strong>Kabel</strong> - <strong>und</strong> <strong>Adapter</strong> <strong>Handbuch</strong> © by PI 2008

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!