Omron CJ1W-ETN21 operation manual 187

Models: CJ1W-ETN21

1 242
Download 242 pages 30.9 Kb
Page 211
Image 211

FINS/TCP Method

Section 7-4

33

34/* ALLOCATE IP ADDRESS AND PORT # TO SOCKET*/

35bzero((char *) &ws_addr,sizeof(ws_addr));

36ws_addr.sin_family = AF_INET;

37ws_addr.sin_addr.s_addr = htonl(INADDR_ANY);

38ws_addr.sin_port = htons(0); /* ASSIGN LOCAL TCP PORT NUMBER

40if (bind(sockfd,(struct sockaddr *)&ws_addr,sizeof(ws_addr)) < 0)

41err_exit(“can’t bind local address”);

43/* ESTABLISH CONNECTION WITH FINS/TCP SERVER*/

44bzero((char *) &cs_addr,sizeof(cs_addr));

45cs_addr.sin_family = AF_INET;

46cs_addr.sin_addr.s_addr = inet_addr(SERV_IP_ADDR);

47cs_addr.sin_port = htons(FINS_TCP_PORT);

49if (connect(sockfd,(struct sockaddr *)&cs_addr,sizeof(cs_addr)) < 0)

50err_exit(“can’t connect to FINS/TCP server”);

53/* SEND FINS/TCP COMMAND*/

54/*

55* GENERATE FINS NODE NUMBER DATA SEND COMMAND (CLIENT TO SERVER)

56*/

57 fins_tcp_header[0] = ‘F’; /* Header */

58fins_tcp_header[1] = ‘I’;

59fins_tcp_header[2] = ‘N’;

60fins_tcp_header[3] = ‘S’;

61fins_tcp_header[4] = 0x00; /* Length */

62fins_tcp_header[5] = 0x00;

63fins_tcp_header[6] = 0x00;

64fins_tcp_header[7] = 0x0C;

65fins_tcp_header[8] = 0x00; /* Command */

66fins_tcp_header[9] = 0x00;

67fins_tcp_header[10] = 0x00;

68fins_tcp_header[11] = 0x00;

69fins_tcp_header[12] = 0x00; /* Error Code */

70fins_tcp_header[13] = 0x00;

71fins_tcp_header[14] = 0x00;

72fins_tcp_header[15] = 0x00;

73fins_tcp_header[17] = 0x00; /* Client Node Add */

74fins_tcp_header[18] = 0x00;

75fins_tcp_header[19] = 0x00;

76fins_tcp_header[20] = 0x00; /*AUTOMATICALLY GET FINS CLIENT FINS NODE NUMBER*/

78/* SEND FINS/TCP COMMAND*/

79sendlen = 20;

81if (send(sockfd,fins_tcp_header,sendlen,0) == sendlen)

82{

83

alarm(RESP_TIMEOUT); /* START RESPONSE MONITOR TIMER*/

84printf(“FINS/TCP header send length %d¥n”,sendlen);

85}

187

Page 211
Image 211
Omron CJ1W-ETN21 operation manual 187