서버->클라이언트 구조체 정보 전송문제

dj3218의 이미지

서버가 가진 구조체의 정보들을 클라이언트들이 들어올때마다
보내주는 코드를 만들려 하고 있으나 계속 실패만 해서 조언좀 구하려 합니다.

구조체 내용

typedef struct {
        int client_id;
        char client_ip[16];
        char client_cnttime[30];
}clientinfo;
clientinfo clntInfo[10];

서버 부분

 while(1)
        {
                clnt_addr_size = sizeof(clnt_addr);
                clnt_sock = accept(serv_sock, (struct sockaddr*)&clnt_addr, &clnt_addr_size);
 
                time(&now);
 
                pthread_mutex_lock(&mutx);
 
                clnt_socks[clnt_number++]=clnt_sock;
                pthread_mutex_unlock(&mutx);
 
                pthread_create(&thread,NULL, clnt_connection, (void*)clnt_sock);
                sendInfo();
         }

void sendInfo(){
 
        int i;
        for(i=0;i<clnt_number;i++){
//              send(serv_sock,(char*)&clntInfo,sizeof(clientinfo)*10,0);
                send(serv_sock,(char*)&clntInfo[i],sizeof(clientinfo),0);
        }  
}

서버에서 이렇게 실행시킴 동작에는 문제 없음 클라이언트 쪽에서 잘 받는지 미확인

클라이언트

int main(....)
 
        ......(연결시키기 위한 소켓 생성부분 필요없으니 생략)        
 
	if(connect(sock,(struct sockaddr*)&serv_addr, sizeof(serv_addr)) == -1)
		error_handling("connect() error!");
 
	sock1=sock;
	clnt_info();
 
	pthread_create(&snd_thread, NULL, send_message, (void*)sock);
	pthread_create(&rcv_thread, NULL, recv_message, (void*)sock);
 
	pthread_join(snd_thread, &thread_result);
	pthread_join(rcv_thread, &thread_result);
 
	close(sock);
	return 0;
}
 
void clnt_info(){
        int sock = sock1;
        int GetSize;
        char suBuffer[600];
        clientinfo  *clntInfo;
        GetSize=recv(sock,suBuffer,600,0);
        suBuffer[GetSize]='\0';
 
        clntInfo=(clientinfo*)suBuffer;
}

클라이언트 쪽의 "clnt_info();" 주석처리하여 실행시켜보니 정상작동합니다 함수 정의 부분 또는
실행부분쪽에서 문제가 있는거 같은데 실행시키면 채팅기능이 먹통되어버립니다. 근데 원인을 모르겠습니다.
정보 공유좀 부탁드립니다..

bushi의 이미지

send(serv_sock, ...);