Omron CS CJ1W-ETN21 User Manual

Page 211

Advertising
background image

187

FINS/TCP Method

Section 7-4

33

34

/*

35

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

36

ws_addr.sin_family = AF_INET;

37

ws_addr.sin_addr.s_addr = htonl(INADDR_ANY);

38

ws_addr.sin_port = htons(0); /*

39

40

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

41

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

42

43

/* ESTABLISH CONNECTION WITH FINS/TCP SERVER*/

44

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

45

cs_addr.sin_family = AF_INET;

46

cs_addr.sin_addr.s_addr = inet_addr(SERV_IP_ADDR);

47

cs_addr.sin_port = htons(FINS_TCP_PORT);

48

49

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

50

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

51

52

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 */

58

fins_tcp_header[1] = ‘I’;

59

fins_tcp_header[2] = ‘N’;

60

fins_tcp_header[3] = ‘S’;

61

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

62

fins_tcp_header[5] = 0x00;

63

fins_tcp_header[6] = 0x00;

64

fins_tcp_header[7] = 0x0C;

65

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

66

fins_tcp_header[9] = 0x00;

67

fins_tcp_header[10] = 0x00;

68

fins_tcp_header[11] = 0x00;

69

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

70

fins_tcp_header[13] = 0x00;

71

fins_tcp_header[14] = 0x00;

72

fins_tcp_header[15] = 0x00;

73

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

74

fins_tcp_header[18] = 0x00;

75

fins_tcp_header[19] = 0x00;

76

fins_tcp_header[20] = 0x00; /*

77

78

/*

79

sendlen = 20;

80

81

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

82

{

83

alarm(RESP_TIMEOUT);

/*

84

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

85

}

ALLOCATE IP ADDRESS AND PORT # TO SOCKET*/

ASSIGN LOCAL TCP PORT NUMBER

AUTOMATICALLY GET FINS CLIENT FINS NODE NUMBER*/

START RESPONSE MONITOR TIMER*/

SEND FINS/TCP COMMAND*/

Advertising