게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[질문글]TCP IP와 멀티쓰레드로 게임을 만들고 있습니다. send함수
게시물ID : programmer_17572짧은주소 복사하기
작성자 : 안구정화
추천 : 1
조회수 : 734회
댓글수 : 5개
등록시간 : 2016/06/11 05:41:17
옵션
  • 본인삭제금지
새벽내내 붙잡고있는데 구글링해도 안나오고 이모저모 다해보고 열혈책 뒤져봐도 도저히 모르겠어서 질문글 올립니다 ㅠㅠ
 
제목그대로 TCP/IP와 pthread로 간단한 게임 및 채팅기능 구현하고있습니다.
 
게임은 오목이구요. GMap[24][39]의 2차원 배열을 맵으로 사용하여
 
돌 하나 놓아질때마다 해당 위치에 사용자에 따른 값을 넣고
 
그 값을 전송하고 받아 같은 배열명의 2차원배열에 덮어씌우고, 그걸 토대로 돌을 그리는걸로 구상하고 구현하려 하고있습니다.
 
TCP/IP를 배우진 못했고, 서버와 클라이언트 간단한 채팅예제를 가지고 변형시키는 중인데요.
 
책과 구글링을 통해 채팅창부분은 구현 완료했는데,
 
send함수로 2차원 배열을 넘기자니 send 함수의 두번째 인자가 const char * 형이라
 
고민을 거듭하여 그냥 GMap[24][39]인 2차원 배열을 GMap[loop]로 1차원배열포인터 형식으로 만들고
 
루프문으로 24번 보내자.. 해서 구현해봤는데
 
이게 쓰레드간의 공유자원의 문제인지
 
디버깅 해보면 돌을 놓았는데도 GMap 배열안에 아무값도 들어있지 않습니다...
 
오목과 채팅이 다른 쓰레드라 디버깅하면서 둘을 동시에 확인하는법도 모르겠네요..
 
아래는 지금 짜본 코드입니다(동작안됨..)
 
send(clntSock, message, (int)strlen(message), 0);
  for(int loop = 0 ; loop < 24 ; loop++){
   send(clntSock, GMap[loop], sizeof(GMap[loop]), 0); }
 
윗부분 send는 채팅에 사용되는 message배열을 보내는 코드고
밑에 for문 안에 한번 해본것이 2차원 배열을 보내려는 send함수입니다.
 
혹시 형식이 맞지않나 싶어서 (char *)GMap[loop]와 같이도 해보고.. 별의 별짓을 다해봤는데
 
아는바가 없으니 계속 헛물켜는 느낌이라 질문드려요 ㅠㅠ
 
어떻게하면 GMap 2차원배열을 TCPIP로 전송시키고 받을 수 있을까요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호