int main() { Point p1; p1.x = 1; p1.y = 0; p1.z = 2; Point p2 = {3.5, 4, 5}; printf("p1: "); print_point(&p1); printf("\n"); printf("p2: "); print_point(&p2); printf("\n"); Point p3; scan_point(&p3); printf("p3: "); print_point(&p3); printf("\n"); Planet earth = { "Earth", { 100, 500, 0.5 } }; printf("%s: ", earth.name); print_point(&earth.position); printf("\n"); Planet mars = { "Mars", { 500, 700, 0.8 } }; Planet solar_system[] = { earth, mars }; return 0; }
//int main(int argc, const char *argv[]) int server_op(void) { int len; int server_sock; socklen_t client_len; struct sockaddr_in server, client; struct in_addr in; char flag_s = 1; if((server_sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror("socket"); exit(1); } else printf("socket success!\n"); bzero(&server, sizeof(server)); server.sin_family = AF_INET; server.sin_port = htons(SERVER_PORT); server.sin_addr.s_addr = ntohs(INADDR_ANY); if(bind(server_sock, (struct sockaddr *)&server, sizeof(server)) < 0) { perror("bind"); exit(1); } else printf("bind address success!\n"); while(1) { if(flag_s == 1) { client_len = sizeof(client); len = recvfrom(server_sock, &buffer, sizeof(buffer), 0, (struct sockaddr *)&client, &client_len); if(len < 0) { close(server_sock); perror("recvform"); exit(1); } else { printf("recvform success !\n"); in.s_addr = client.sin_addr.s_addr; printf("client ip = %s\n", inet_ntoa(in)); printf("client port = %d\n", ntohs(client.sin_port)); printf("\n"); global_x = buffer.x; global_y = buffer.y; //scan_point(global_x + STARTX, global_y + STARTY); scan_point(STARTX + global_x*SPACE, STARTY + global_y*SPACE); flag_s = 0; } } mouse_doing(); if(flag == 1) { flag = 0; buffer.x = global_x; buffer.y = global_y; //client_len = sizeof(client); sendto(server_sock, &buffer, sizeof(buffer), 0, (struct sockaddr *)&client, client_len); flag_s = 1; } } printf("client close the connect, please wait for new connect\n"); close(server_sock); return 0; }
int mouse_doing(void) { m_event mevent; //int fd; //int mx = 512; //int my = 384; char victory = -1; //fd = open("/dev/input/mice", O_RDWR|O_NONBLOCK); //if(fd < 0) //{ //perror("open"); //exit(1); //} //print_color(); //mouse_cursor(mx, my); //while(1) //{ if(get_m_info(fd, &mevent) > 0) { restore_shape(mx, my); mx += mevent.dx; my += mevent.dy; mx = ((mx >= 0) ? mx : 0); my = ((my >= 0) ? my : 0); if(mx >= (fb_v.w-C_WIDTH)) { mx = (fb_v.w-C_WIDTH); } if(my >= (fb_v.h-C_HEIGHT)) { my = (fb_v.h-C_HEIGHT); } mouse_cursor(mx, my); switch(mevent.mode) { case 1: restore_shape(mx, my); if (scan_point(mx, my) == 0) { //if(global_color == 0x00ffffff) //{ //global_color = 0x00000000; //who = 1; //} //else //{ //global_color = 0x00ffffff; //who = 2; //} flag = 1; chess_count(mx, my); //global_x = mx - STARTX; //global_y = my - STARTY; //global_x = mx; //global_y = my; victory = check_all(); } mouse_cursor(mx, my); break; case 2: break; case 4: break; default: break; } #if 0 if(victory == 1) { printf("play%d won!\n", who); printf("contniue ? y/n\n"); if(getchar() == 'n') return 0; else { memset((u8_t *)fb_v.fb_men, 0, fb_v.h * fb_v.w *fb_v.bpp/8); memset(board, 0, H_NUM * V_NUM); fb_backgound(0, 0, fb_v.w - 1, fb_v.h - 1, 0x00996600); fb_backgound(STARTX, STARTY, STARTX + (V_NUM - 1) * SPACE, STARTY + (H_NUM - 1) * SPACE, 0x00ffcc33); fb_board(0x000000ff); print_color(); mouse_cursor(512, 384); global_color = 0xffffffff; who = 1; victory = -1; mx = 512; my = 384; mouse_cursor(mx, my); } getchar(); } #endif } usleep(1000); //} return 0; }