2 // masashi shimakura 20140223
12 // #define SOCKET_READBUG
14 int socket_readas(int sk, char * readdata, int max, int interval, int mode){
26 memset(cha, 0x00, 64);
35 retval = select(sk + 1, &rfds, NULL, NULL, &tv);
39 printf("SOCKET: socket_read(2): NG select <%d> ERRNO: %d %s\n",
40 retval, errno, strerror(errno));
47 printf("SOCKET: socket_read(3): NG select. time out break <%d> ERRNO: %d %s\n",
48 retval, errno, strerror(errno));
55 stat = read(sk, cha, 32);
58 printf("stat = %d string = %s front_char = %02x %02x %02x %02x\n", stat, cha, cha[0], cha[1], cha[2], cha[3]);
59 printf("rear_char = %02x %02x %02x\n",cha[stat -2], cha[stat -1], cha[stat]);
64 printf("BREAK stat==0\n");
69 if(stat == 0 && cha[0] == 0x00 && cha[1] == 0x00){
71 printf("BREAK stat==0 cha0=00 cha1=00\n");
76 if(stat == 1 && cha[0] == 0x0a && cha[1] == 0x00){
78 printf("BREAK stat==1 cha0=0a cha1=00\n");
85 if(cha[stat - 1] == 0x0a){
87 printf("BREAK stat>1 0d [mode 1]\n");
89 strncat(readdata, cha, stat);
90 memset(cha, 0x00, 33);
95 if(cha[stat - 2] == 0x0d && cha[stat - 1] == 0x0a){
97 printf("BREAK stat>1 0d 0a\n");
99 strncat(readdata, cha, stat);
100 memset(cha, 0x00, 33);
105 strncat(readdata, cha, stat);
106 memset(cha, 0x00, 33);
109 #ifdef SOCKET_READBUG
110 fprintf("socket_reada(): read size err.\n");