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;

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: