디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

아까 그 소켓프로그래밍인데 이거 소스좀 봐주시면 감사하겠습니다;

커피♡갤로그로 이동합니다. 2010.03.16 19:13:35
조회 81 추천 0 댓글 1


리눅스상에서 서버파일 먼저 백그라운드로 실행시키고 그담에 클라이언트 실행시켜서
/TIME 이라고 입력하면 서버에서 현재 시간을 계산해서 출력해주는 프로그램인데요;

소켓 부분은 문제가 없는 듯 한데.. 글자를 입력하면 그냥 나와버립니다. 서버에서 시간을 보내줘야 하는데 통신이 안되고 있네요 ㅠ
클라이언트의 fgets 부분에서부터 입력이 그지같이 된듯 한데 정확하게 뭐가 잘못되었는지 아직도 끙끙앓고 있네요 ㅠㅠ
벌써 일주일째 이 문제가지고 고민중인데 ㅠㅠ

서버 실행시키고 클라이언트 실행시켜서 글자 치고 엔터 치면

[1]+ Exit 208     ./exam_s
일케 나와버리고 프로세스도 모두 종료되어 버리네요..;
시간이 출력되야 되는데 ㅠㅠ

중간에 printf로 check 넣은건 에러 흐름을 보려고 넣은 거구요;


프갤 고수분들의 절실한 도움 부탁드려요 ㅠㅠ

제가 짐작하건데 서버쪽에선 밑에 thread_time 함수 부분에서 뭔가 문제가 있는 듯 하고
클라이언트 쪽에선 fgets 이후로 문제가 있는 듯 합니다;;

주석이 쪼금 많은데; 여러가지 시험해본다고 주석처리한것들이 쫌 있어요;


부탁드릴께요!! ㅠㅠ

//서버

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <pthread.h>

#define PORT 8010


void *thread_time(void *time);

main()
{
 int connect_sock, listen_sock;
 int len;
 struct sockaddr_in se_addr, cl_addr;

 pthread_t pthread1; //thread define

 ///////int thread_id;
 
 listen_sock = socket(PF_INET, SOCK_STREAM, 0); //socket making
 
 memset(&se_addr, 0, sizeof(se_addr)); //0 -> fill se_addr

 se_addr.sin_family = AF_INET;
 se_addr.sin_port = htons(PORT);
 se_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 // struct define

 if(bind(listen_sock/*socket*/, (struct sockaddr *) &se_addr,/*struct address. go to socket.*/ sizeof(se_addr)) == 1)
 // address -> socket
 {
  printf("Can\'t Bind\\n");
  return -1;
 }

 if(listen(listen_sock, 5) == -1){
 //  client request connect <- wait...
  printf("no listen\\n");
  return -1;
 }
 
 printf("check_1\\n"); 
 len = sizeof(struct sockaddr_in);

 ///while(1) {
 

  if((connect_sock = accept(listen_sock, (struct sockaddr *) &cl_addr, &len)) == -1) {
   printf("not accept\\n");
   
  }

  printf("check_2\\n");
  //connect_sock = accept(listen_sock, (struct sockaddr *) &cl_addr, &len);
// connect request to listen sock, -> OK! function
  pthread_create(&pthread1,/*thread sik-byul-ja*/ NULL, thread_time, (void *) &connect_sock);
  pthread_join(pthread1, NULL);

  close(listen_sock);
 /*}*/ printf("check_3\\n");
}


void *thread_time(void* time)
{
 char rcvBuffer[BUFSIZ]; //receive valiable buffer
 char buffer[255];
 
 time_t the_time;
 struct tm *tm_ptr;  //time struct point
 
 int connect_sock = *((int*) time);
 
 
 read(connect_sock, rcvBuffer, strlen(rcvBuffer));
 
 if(!strcmp(rcvBuffer, "/TIME\\n")!=0) {
  //write(connect_sock, rcvBuffer, strlen(rcvBuffer));
 
 /////int connect_sock = *((int*) time);
  tm_ptr = localtime(&the_time);
  sprintf(buffer, "%d %d %d %d : %d\\n", tm_ptr->tm_year +1900,
   tm_ptr->tm_mon +1, tm_ptr->tm_mday, tm_ptr->tm_hour,
   tm_ptr->tm_min);
  write(connect_sock, buffer, strlen(buffer));
 //read(connect_sock, rcvBuffer, strlen(rcvBuffer));
 //write(connect_sock, rcvBuffer, strlen(rcvBuffer));

  //printf("%d %d %d %d : %d\\n", tm_ptr->tm_year +1900,
  // tm_ptr->tm_mon +1, tm_ptr->tm_mday, tm_ptr->tm_hour,
  // tm_ptr->tm_min);
 }else if(!strcmp(rcvBuffer, "quit")!=0) {
 
 } 

}

 


///////////////////////////// SERVER!!!!!!!!!!!!!!!!!!!

 

 

 

 

 

 

 

 

 

 

 

 

//클라이언트


//new_client

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <string.h>
#include <sys/socket.h>

#define PORT 8010


int main(int argc, char *argv[]) {

 int connecting_sock;
 struct sockaddr_in connect_addr;
  

 char sndBuffer[BUFSIZ], rcvBuffer[BUFSIZ];

 connecting_sock = socket(PF_INET, SOCK_STREAM, 0);
 //socket define
 
 
 
 memset(&connect_addr, 0, sizeof(connect_addr));

 connect_addr.sin_family = AF_INET;
 connect_addr.sin_addr.s_addr = inet_addr(argv[1]); //????????
 connect_addr.sin_port = htons(PORT);
 
 
 if(connect(connecting_sock,/*socket*/ (struct sockaddr *) &connect_addr,/*server address information pointer */ sizeof(connect_addr)) == -1) {
 // socket ue ro, server connect request!

  printf("Can\'t connect\\n");
  close(connecting_sock);
  return -1;
 }
 
 //while(1) {
  
  fputs("Input message(Q to quit): ", stdout);
  fgets(sndBuffer, BUFSIZ, stdin);
  
  
  if(!strcmp(sndBuffer, "quit\\n")!=0)/*{*/
    exit(0);
  /*}*/
  

  

  write(connecting_sock, sndBuffer, strlen(sndBuffer));
  
  read(connecting_sock, rcvBuffer, strlen(rcvBuffer)); 
  
  printf("%s\\n", rcvBuffer);

  
  
  close(connecting_sock);
  

 /*}*/

}

 

  

 

 

 

 

 

 

 




 

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 외모와 달리 술 일절 못 마셔 가장 의외인 스타는? 운영자 24/07/01 - -
175668 27인데 1800받으면 조금받는거지 [5] ㅠㅠ(118.131) 10.03.19 259 0
175666 우오오 개꿈꿨다, 우오오 [1] 오사카(221.153) 10.03.19 62 0
175665 리눅스 쬐끔이라도 할 줄 아시는분 봐주세여 제발여 [4] 아무개(218.48) 10.03.19 84 0
175664 그건그렇고 너님들 오뎅 떡 아냐능 [6] 유리한갤로그로 이동합니다. 10.03.19 140 0
175663 밥먹으러 갑시다 유리한갤로그로 이동합니다. 10.03.19 72 0
175662 UI를 아이팟터치처럼 한쪽에서 밀려나온다거나, cover flow... [6] TheDin갤로그로 이동합니다. 10.03.19 107 0
175661 근데 프로그래머 대부분은 컴공인가여? [1] 초짜(211.210) 10.03.19 133 0
175657 비주얼 베이직 문제 코드 알려주세요 [6] 어머나젠장할갤로그로 이동합니다. 10.03.19 68 0
175656 며칠전에 구석횽이 올려준 보트릭스를 처음부터 끝까지 정독하였다. [7] 개쉛기갤로그로 이동합니다. 10.03.19 207 0
175654 입갤 학고위기갤로그로 이동합니다. 10.03.19 53 0
175653 자바 톰캣 500에러 해결 부탁드립니다! [1] ArmorKing™갤로그로 이동합니다. 10.03.19 190 0
175652 VS 2010 교육장 뒤에서 찍은 유일한 여자 교육생 사진 인증~ [3] 물속의다이아갤로그로 이동합니다. 10.03.19 198 0
175651 궁금한거있어요 알려주세요ㅠ ㄱ3(125.178) 10.03.19 45 0
175650 아이폰 해킹된거 막을수있는거같던데 ㅆㅆ(118.131) 10.03.19 116 0
175648 슈카짱이 있었구나.. 미안... [1] rntjr갤로그로 이동합니다. 10.03.19 138 0
175645 CreateMutex 로 중복실행 방지하는거.... [4] 초짜(211.210) 10.03.19 140 0
175644 밤새 아이폰 어플 개발. . . [4] 온순한감자갤로그로 이동합니다. 10.03.19 280 0
175642 키보드 쿨타임 JuEUS-U갤로그로 이동합니다. 10.03.19 97 0
175641 형들. 문자 입력하면 문자 뜨게하는 소스인데 ㅠㅠ [5] ㅁㄴㅇㄹ(125.137) 10.03.19 110 0
175640 간단한 프로그램 소스 질문인데용 [2] ㅁㄴㅇㄹ(125.137) 10.03.19 88 0
175639 아..돈받고 학교 다닌다는게 이런거구나!! [2] 오모보살(125.185) 10.03.19 202 0
175637 JAVA 기초 질문 [2] 컴공곰돌이갤로그로 이동합니다. 10.03.19 83 0
175636 ADC하나만 더 질문!! [2] ㅅㅆ(210.125) 10.03.19 85 0
175635 OOP의 길은 멀고도 험난하구나 [5] JuEUS-U갤로그로 이동합니다. 10.03.19 232 0
175634 올해는 간단한 자격증 시험이나 봐봐야지 이모군(116.127) 10.03.19 59 0
175633 임베디드에서 ADC가 뭐죠?? [2] ㅅㅆ(210.125) 10.03.19 84 0
175632 이 소스로 exe 파일 만드니까 1초만에 바로 꺼져버리는데;;; [4] ㅁㄴㅇㄹ(125.137) 10.03.19 145 0
175631 오오 지우개느님!!!! [4] 위디안갤로그로 이동합니다. 10.03.19 109 0
175630 핸드폰 내장칩 프로그램 고부장(118.33) 10.03.19 63 0
175629 형들. 종합적으로 질문 좀 할게 [7] ㅁㄴㅇㄹ(125.137) 10.03.19 98 0
175628 이 소스 그대로 프로그램 돌아감 [9] ㅁㄴㅇㄹ(125.137) 10.03.19 233 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2