Hole Punching 기술을 이용한 원격제어 프로그램
[RemotePC_/SocketUtils/Client.cs 의 21번 줄]
public IPEndPoint ServerEndpoint = new IPEndPoint(IPAddress.Parse("192.168.0.7"), 27000);
의 아이피와 포트 (펀치서버의 외부 아이피를 작성해주세요.)
[CenterServer/Program.cs 의 15번 줄]
static int Port = 27000;
의 포트 (펀치서버는 해당 포트가 포트포워딩 돼 있어야 외부연결이 가능합니다.)
를 맞춰주시길 바랍니다.
- UDP Hole Punching 기술 [기술 설명]
- UDP 통신이 힘들 경우 TCP 통신으로 이용
- 사용자 별 고정 ID (팀뷰어와 비슷하다 생각하시면 됩니다.)
- UDP에서의 이미지 분할전송
- 마우스 이동, 클릭 (이동 구현은 되어있으나 제대로 테스트를 안해봤습니다.)
- 키보드 전송 (테스트 안해봤습니다.)
- 원격제어시 이미지 퀄리티를 높이고 싶을 경우 [RemotePC_/MainForm.cs 의 337번 줄]
img = VaryQualityLevel(img, 50L);
를 수정하면 됩니다. (이미지의 퀄리티를 낮추면 이미지의 용량이 줄어 전송속도가 높아집니다. 퀄리티가 높을경우 그 반대입니다.)