s7-1200 udp通讯,udp 通讯 内网

  s7-1200 udp通讯,udp 通讯 内网

  udpsoket=socket(af _ inet、SOCK_DGRAM、ippo rot _ UDP);

  if(invalid _ socket==UDP socket)}

  关闭的票证(UDP soket);

  wsacleanup();

  返回0;

  *接收超时

  iero code=setsockopt(udpsoket,SOL_SOCKET,SO_RCVTIMEO,(const char *)nnectameout,sizeof(int));

  if(socket _ error==iero code)}

  关闭的票证(UDP soket);

  wsacleanup();

  返回0;

  *绑定到自己的端口

  recvaddr。sin _ family=af _ inet:

  recddr。sin _ port=hten(4000);

  重复,sin_addr .S_un。不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不S7-1200可编程控制器:

  iAddrLen=sizeof(重复ddr):

  iero code=bind(UDP soket)(sockaddr *)recddr,iaddrlen);

  *设置要发送的互联网协议(Internet Protocol)地址地址及端口号

  *备注:如果在同一台机器上做测试时,自己的端口与服务器的端口不可以重复;

  *如果重复会有一段打开端口失败。

  sendaddr。sin _ family=af _ inet:

  sendaddr。sin _ port=hten(4000);

  SendAddr.sin_addr(发送者:sin_addr).S_un。不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不s _ addr=inet _ addr( 172。16 .0 .193 );

  *发送请求,传入带有对方的地址信息的结构体

  iercode=send to(UDP soket,szBuffer,strlen(SZ buffer)1.0,(SOCKADDR*) SendAddr,sizeof(SendAddr));

  if(socket _ error==iero code)}

  关闭的票证(UDP soket);

  wsacleanup();

  返回0;

  *接收请求,传入带有本地端口信息的结构体

  iero code=recvfrom(udpsoket,szBuffer,100.0,(sockaddr *)recddr,iaddrlen);

  if(socket _ error==iero code)}

  关闭的票证(UDP soket);

  wsacleanup();

  返回0;

  printf(szBuffer):

  getchar();

  关闭的票证(UDP soket);

  wsacleanup();

  返回0;

  }

s7-1200 udp通讯,udp 通讯 内网