Kabel- und Adapter Handbuch
Kabel- und Adapter Handbuch
Kabel- und Adapter Handbuch
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