>> Edit article
이름
제목
패스워드
#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <sys/wait.h> #include <mysql.h> #define MYPORT 2002 #define BACKLOG 10 main() { int sockfd, new_fd; struct sockaddr_in my_addr; struct sockaddr_in their_addr; int sin_size; MYSQL mysql; MYSQL_RES *res; MYSQL_ROW row; int fields; int cnt; char *query; if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){ perror("socket"); exit(1); } my_addr.sin_family = AF_INET; my_addr.sin_port = htons(MYPORT); my_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(my_addr.sin_zero), 8); if(bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1){ perror("bind"); exit(1); } if(listen(sockfd, BACKLOG) == -1) { perror("listen"); exit(1); } mysql_init(&mysql); if(!mysql_real_connect(&mysql,"localhost","kimh81","*****","kimh81",0,(char *)NULL, 0)) { printf("error no: %d%s", mysql_errno(&mysql), mysql_error(&mysql)); exit(1); } query = "SELECT * FROM bbs_se"; if(mysql_real_query (&mysql, query, strlen(query))) { printf("error no: %d%s", mysql_errno(&mysql), mysql_error(&mysql)); exit(1); } res = mysql_store_result(&mysql); fields = mysql_field_count(&mysql); while(1){ sin_size = sizeof(struct sockaddr_in); if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1){ perror("accept"); continue; } while((row = mysql_fetch_row(res))) { for(cnt = 0; cnt < fields; ++cnt) if(!fork()){ if(send(new_fd, row[cnt], 0, 0) == -1) perror("send"); close(new_fd); exit(0); } close(new_fd); } mysql_free_result(res); mysql_close(&mysql); while(waitpid(-1, NULL, WNOHANG) > 0); } } 이따구루다가.. 코딩했습니다. 이렇게 해서 서버에 오려놓구.. 클라이언트로 접속하면 후후.. 서버에 잘못된파일기술자라고 하면서 에러가 죽~~~ 나오네용 ㅡ,.ㅡ;; mysql에서 나온 값을 어떻게 클라이언트로 전송해야하죠? 웅?--윽~ 똥발바따~ ㅜ.ㅜ
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved