C++ 채팅 프로그램을 만들고 있습니다
글쓴이: 토스님@Google / 작성시간: 금, 2021/01/15 - 9:18오후
C++ 소켓 통신을 배우고 카카오톡 같은 프로그램 하나 만들고 싶어서 작업을 시작하였습니다. 채팅방에 들어와 있는 사람들의 수를 표시하는건 어떻게 만들어야 할지 모르겠네요
서버와 연결되어있는 클라이언트의 갯수를 표시하고 싶어요
클라이언트가 들어오면 언제라도 클라이언트가 하나 늘어야 하고
클라이언트가 나가면 언제라도 클라이언트가 하나 줄어야 해요
제 지식으로는 도무지 감이 잡히질 않아서 질문 드려봅니다 ...
Forums:
1-N (Server-Clients)로 연결이 될테니
1-N (Server-Clients)로 연결이 될테니 서버에서 클라이언트들과 연결되는 소켓의 갯수를 세면 되지 않을까요?
그 과정을 어떻게 만들지 모르겠어요
그 과정을 어떻게 만들어야 할지 모르겠어요
while(true) 해서 accept(); client++ 이런식으로 하는것도 아닌것 같고요 ...
유저 소켓을 담는 자료구조에서 갯수를 소켓 개수를 세시면 될거 같은데
그렇게 해보세요
그렇게 하는 것도 한 방법으로 생각됩니다.
그렇게 하는 것도 한 방법으로 생각됩니다. accept() 할 때 1 증가하고, close() 할때 1 감소시키는 거죠.
소켓 라이브러리에 따라서 서버 인스턴스에 연결된 클라이언트 소켓을 return하는 함수도 있습니다.
클라이언트 감소는
클라이언트 변수 감소는
if (send(client_sock, buf, retval, 0) == SOCKET_ERROR) {
client--;
}
이렇게 작성하면 가능할까요?
send()는 보낼 때마다 줄어드니까 안되고요,
send()는 보낼 때마다 줄어드니까 안되고요,
소켓 close() event가 발생할 때 그 소켓은 더 이상 서버에 붙지 않으니까 뺴시면 되죠.
댓글 달기