관리 메뉴

어읽로꾸거

[Java] 소켓을 이용한 인터넷 전화 본문

만든거

[Java] 소켓을 이용한 인터넷 전화

어읽로꾸거 2019. 6. 27. 22:29

원래는 Unity로 소켓을 이용해 3d게임을 만들던 도중 오버워치처럼 음성대화를 하면 좋겠다는 생각이 들었다.

 

그래서 자바로 소켓을 이용해 이틀정도 걸려서 만들었다. 오디오 데이터를 다루는 것은 처음이라 좀 어려웠음.

 

서버와 클라이언트가 1:1로 연결되는 거라서 연결 부분만 빼면 거의 동일하다고 볼 수 있다.

 

추후 기회가 된다면 더 업그레이드를 해볼 생각이다.

 

[과정]

[구조]

 

Phone 클래스를 중심으로 Mic, Speaker, Connect 클래스가 존재한다.

 

연결이 성립되면 Mic, Speaker 클래스의 스레드가 작동하여 데이터를 주고 받으면서 소리를 들려준다.

[잘 알려진 문제]

 

너무 많은 데이터를 전송하는것 같다. Skype와 비교를 해봤는데 거의 10배 정도의 데이터를 더 전송하는것 같다(통화 품질은 Skype보다는 좀 나은것 같지만 10배정도의 차이는 아닌 것 같다). 그룹전화를 염두해둔다면 잠재적인 문제다.

 

[Github]

 

december-ok/JavaSocketTelephone

Calling with java socket. Contribute to december-ok/JavaSocketTelephone development by creating an account on GitHub.

github.com