
FINS/TCP Method | Section |
192}
194printf("FINS/TCP header receive length %d¥n",recvlen);
195recvlen = fins_tcp_header[6];
196recvlen <<=8;
197recvlen += fins_tcp_header[7];
198recvlen
199printf("FINS/TCP frame receive length %d¥n",recvlen);
200}
201else
202{
203err_exit("TCP receive error");
204}
206/* RECEIVE FINS RESPONSE FRAME*/
207if (tcp_recv(sockfd, fins_resp, recvlen) == recvlen)
208{
209 | alarm(0); /* STOP RESPONSE MONITOR TIMER*/ |
210printf("recv length %d¥n",recvlen);
212if (recvlen < 14) /* ILLEGAL RESPONSE LENGTH CHECK*/
213err_exit("FINS length error");
214if ((fins_cmnd[3] != fins_resp[6]) (fins_cmnd[4] != fins_resp[7])
215(fins_cmnd[5] != fins_resp[8]) )
216{
217/* DESTINATION ADDRESS CHECK*/
218err_exit("illegal source address error");
219}
220 |
|
221 | if(fins_cmnd[9] != fins_resp[9]) /* SID CHECK */ |
222err_exit("illegal SID error");
223}
224else
225{
226 | alarm(0); /* STOP RESPONSE MONITOR TIMER |
227err_exit("receive error");
228}
229 |
|
|
230 |
|
|
231 | /*CLOSE SOCKET | */ |
232close(sockfd);
234}
237/*
238* TCP RECEIVE PROCESSING (RECEIVE REPEATED UP TO THE SPECIFIED NUMBER OF BYTES)
239*/
240int tcp_recv(sockfd, buf, len)
241int sockfd;
242unsigned char *buf;
243int len;
244{