서버->클라이언트 구조체 정보 전송문제
글쓴이: dj3218 / 작성시간: 화, 2018/01/30 - 3:32오후
서버가 가진 구조체의 정보들을 클라이언트들이 들어올때마다
보내주는 코드를 만들려 하고 있으나 계속 실패만 해서 조언좀 구하려 합니다.
구조체 내용
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();" 주석처리하여 실행시켜보니 정상작동합니다 함수 정의 부분 또는
실행부분쪽에서 문제가 있는거 같은데 실행시키면 채팅기능이 먹통되어버립니다. 근데 원인을 모르겠습니다.
정보 공유좀 부탁드립니다..
Forums:


send(serv_sock, ...);
send(serv_sock, ...);
댓글 달기