#include #include #include #include #include #include #include #include #include #include #include #include #define MAXLINE 4096 static void prepare_set_wifi(void) { int fd, size; char buf[200]; fd = open("/proc/tcp_params", O_RDONLY); memset(buf, 0, 200); size = read(fd, buf, 200); system(buf); usleep(300 * 100); system("dhd_priv wl tcpka_conn_sess_info 1"); usleep(300 * 100); system("dhd_priv wl tcpka_conn_dump 1"); } int main(int argc, char** argv) { int sockfd, n; char recvline[4096], sendline[4096]; struct sockaddr_in servaddr; int fd, size, send_count = 0; char buf[200]; char recvbuffer[200]; char sendbuf[2] = {0xc0, 0x00}; if( argc != 2){ printf("usage: ./client \n"); return 0; } if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){ printf("create socket error: %s(errno: %d)\n", strerror(errno),errno); return 0; } memset(&servaddr, 0, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(5150); if ( inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0) { printf("inet_pton error for %s\n",argv[1]); return 0; } char timestamp = 0; setsockopt(sockfd, SOL_SOCKET, SO_TIMESTAMP, (const char*)×tamp, sizeof(char)); if (connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0) { printf("connect error: %s (errno: %d)\n",strerror(errno),errno); return 0; } prepare_set_wifi(); printf("connected to server \n"); while (1) { if (send_count == 5) { system("dhd_priv wl tcpka_conn_sess_info 1"); usleep(100 * 100); system("dhd_priv wl tcpka_conn_dump 0"); usleep(100 * 100); system("dhd_priv wl tcpka_conn_enable 1 1 30 3 8"); usleep(100 * 100); system("dhd_priv setsuspendmode 1"); usleep(100 * 100); system("tb_poweroff &"); while(1); } if (send(sockfd, "hellp tcp", 9, 0) != 9) { printf("send msg error: %s(errno: %d)\n", strerror(errno), errno); return 0; } send_count++; sleep(1); } close(sockfd); return 0; }