혹시 개발자분 계실까요 ?
컨텐츠 정보
- 4,029 조회
- 13 댓글
- 목록
본문
제가 하고싶은 부분은 여러대의 PC에 동시에 특정 신호를 주는것입니다. (OSC신호 또는 단순한 키보드값도 무방)
이에대한 베이스로는 PC들이 모두 IP기반으로 하나의 네트웍으로 묶여있을거고 사용하는 SW내에서 OSC지원이 가능하며
특정키(ex. A,B,C 등) 입력으로 큐신호 지원이 가능합니다.
PC가 켜진 후 자동으로 프로그램이 실행되고 [여기까진 문제가 안되지만]
OSC 컨트롤을 이용 or 단순 키보드값을 이용해서 여러대의 PC에 동시에 신호를 넣고 싶은데
(여기서 포인트는 PC들에 동시에 신호를 넣는 부분입니다.)
터치 OSC등의 특정 앱을 이용하면 눌러가며 가능한걸로 아는데 혹시 이런 부분을 터치패드 이런거 이용없이 PC만으로 자동으로
프로그램 등을 실행하여 키값 주는게 가능할까요?
가능하게 하려면 혹시 어떤 프로그램을 공부해야할까요 ?? 노베이스에서 구현하려면 난이도가 꽤 높을런지 ㅠ
이것저것 배워보고 싶은데 제가 구현하려는 부분 배우려면 혹 관련 사이트나 정보 좀 얻고 싶은데 조언 좀 가능할까요 ?
관련자료
댓글 13
/ 1 페이지
배기니어님의 댓글
더이상 댓글이 안달려서 새로 써야하네요 ㅋㅋ
정말 맨땅에서 시작하시나봐요
아예 처음부터 공부하시는 건 너무 오래 걸리실거고 간단한 프로그램 구현 목적이랑도 안맞는 것 같으니..
기본적으로 소켓, 스레드, 멀티스레드, 라이브러리 사용법, 조건문 사용법, 반복문 사용법 이런 것들은 구글링해서 먼저 알아보시는 게 도움이 될 것 같습니다. 그 이후로는 막히는 부분에서 구글링하시면 자료 많이 나올 거에요!
제가 생각하는 과정대로 진행해보셔요
1) 1:1 통신 프로그램 작성
https://foxtrotin.tistory.com/272
- 서버와 클라이언트가 1:1로 통신하는 프로그램입니다.
1. 서버로 사용할 pc(신호 보내는 쪽)에서 돌릴 프로그램 작성
2. 클라이언트 pc에서 서버에 접속, 신호 받는 프로그램 작성
3. 서버에서 보낸 신호가 클라이언트에서 잘 받아지는지 테스트
4. 서버에서 신호 보내는 부분 구현 - 채팅 프로그램 이용
2) 1:N 통신 프로그램 작성
https://nalara12200.tistory.com/153
- 서버와 다수의 클라이언트가 1:N으로 통신하는 프로그램입니다. 위에서 작성한 프로그램을 확장하는 형식으로 진행해보세요.
멀티스레드 개념을 더해서 작성하시면 됩니다.
1. 스레드 이용하여 서버 프로그램 다시 작성
2. 여러 대의 클라이언트 pc에서 서버에 접속 테스트
3. 서버에서 모든 클라이언트들에게 신호를 보내는 broadcasting 구현
4. 보낸 신호가 모든 클라이언트에서 잘 받아지는지 확인
3) 최종 프로그램 완성 단계
- 이제 서버에서 원하는 신호를 보내면 클라이언트에서 입력을 감지하고 원하는 작업을 수행하는 부분을 작성합니다. 사실 채팅 프로그램을 참고해서 통신 프로그램을 작성했지만 클라이언트에서는 굳이 메시지 보내는 기능을 구현할 필요가 없습니다. 굳이 메시지를 보낸다면 신호를 잘 받았다는 메시지나 작업을 정상적으로 수행했다는 메시지 정도는 서버에게 알려주면 더 좋겠네요
1. 서버에서 클라이언트로 신호를 보냄
- 이 부분은 그냥 메시지 보내는 것으로 구현해도 될 것 같습니다.
ex) 신호를 "start" 문자열이라고 정했을 경우, "start"라는 스트링을 클라이언트에게 전송
2. 클라이언트에서 서버가 보낸 신호 감지
- 이것도 사실 그냥 서버가 보낸 메시지를 그대로 받아도 될 것 같습니다.
ex) 서버가 보낸 메시지가 "start"인 경우 작업 수행, 아니면 아무것도 하지 않을 것
추가로 작성한 프로그램이 pc 실행 시에 자동으로 시작되려면 exe 파일로 만들어주시는 것도 필요합니다. 그것도 인터넷에 많이 나와있으니 구글링해보시면 됩니다.
아 그리고, 모든 서버와 클라이언트 모든 pc들이 같은 ip 내의 네트워크망에 있으면 문제가 없지만 외부 ip주소가 다른 경우에는 포트포워딩이라는 것도 해주셔야 합니다. 아마 공유기 사용하시고 같은 인터넷망에서 사용하실 것 같아서 문제가 되지는 않을 것 같은데 혹시 몰라서 말씀드려요
이 외에는 필요한 부분에서 구글링하는 것이 가장 최선이라고 생각합니다.
생각보다 인터넷에 많은 자료와 코드가 있으니 보고 참고하시는게 많이 도움될 거에요
만약 파이썬 설치를 아직 안하셨다면 아나콘다 설치 후 파이참이나 vscode같은 IDE 설치하셔서 작업 진행하시는 것을 추천드립니다.
도움이 되었으면 좋겠습니다!!
그럼 화이팅 하십쇼!
정말 맨땅에서 시작하시나봐요
아예 처음부터 공부하시는 건 너무 오래 걸리실거고 간단한 프로그램 구현 목적이랑도 안맞는 것 같으니..
기본적으로 소켓, 스레드, 멀티스레드, 라이브러리 사용법, 조건문 사용법, 반복문 사용법 이런 것들은 구글링해서 먼저 알아보시는 게 도움이 될 것 같습니다. 그 이후로는 막히는 부분에서 구글링하시면 자료 많이 나올 거에요!
제가 생각하는 과정대로 진행해보셔요
1) 1:1 통신 프로그램 작성
https://foxtrotin.tistory.com/272
- 서버와 클라이언트가 1:1로 통신하는 프로그램입니다.
1. 서버로 사용할 pc(신호 보내는 쪽)에서 돌릴 프로그램 작성
2. 클라이언트 pc에서 서버에 접속, 신호 받는 프로그램 작성
3. 서버에서 보낸 신호가 클라이언트에서 잘 받아지는지 테스트
4. 서버에서 신호 보내는 부분 구현 - 채팅 프로그램 이용
2) 1:N 통신 프로그램 작성
https://nalara12200.tistory.com/153
- 서버와 다수의 클라이언트가 1:N으로 통신하는 프로그램입니다. 위에서 작성한 프로그램을 확장하는 형식으로 진행해보세요.
멀티스레드 개념을 더해서 작성하시면 됩니다.
1. 스레드 이용하여 서버 프로그램 다시 작성
2. 여러 대의 클라이언트 pc에서 서버에 접속 테스트
3. 서버에서 모든 클라이언트들에게 신호를 보내는 broadcasting 구현
4. 보낸 신호가 모든 클라이언트에서 잘 받아지는지 확인
3) 최종 프로그램 완성 단계
- 이제 서버에서 원하는 신호를 보내면 클라이언트에서 입력을 감지하고 원하는 작업을 수행하는 부분을 작성합니다. 사실 채팅 프로그램을 참고해서 통신 프로그램을 작성했지만 클라이언트에서는 굳이 메시지 보내는 기능을 구현할 필요가 없습니다. 굳이 메시지를 보낸다면 신호를 잘 받았다는 메시지나 작업을 정상적으로 수행했다는 메시지 정도는 서버에게 알려주면 더 좋겠네요
1. 서버에서 클라이언트로 신호를 보냄
- 이 부분은 그냥 메시지 보내는 것으로 구현해도 될 것 같습니다.
ex) 신호를 "start" 문자열이라고 정했을 경우, "start"라는 스트링을 클라이언트에게 전송
2. 클라이언트에서 서버가 보낸 신호 감지
- 이것도 사실 그냥 서버가 보낸 메시지를 그대로 받아도 될 것 같습니다.
ex) 서버가 보낸 메시지가 "start"인 경우 작업 수행, 아니면 아무것도 하지 않을 것
추가로 작성한 프로그램이 pc 실행 시에 자동으로 시작되려면 exe 파일로 만들어주시는 것도 필요합니다. 그것도 인터넷에 많이 나와있으니 구글링해보시면 됩니다.
아 그리고, 모든 서버와 클라이언트 모든 pc들이 같은 ip 내의 네트워크망에 있으면 문제가 없지만 외부 ip주소가 다른 경우에는 포트포워딩이라는 것도 해주셔야 합니다. 아마 공유기 사용하시고 같은 인터넷망에서 사용하실 것 같아서 문제가 되지는 않을 것 같은데 혹시 몰라서 말씀드려요
이 외에는 필요한 부분에서 구글링하는 것이 가장 최선이라고 생각합니다.
생각보다 인터넷에 많은 자료와 코드가 있으니 보고 참고하시는게 많이 도움될 거에요
만약 파이썬 설치를 아직 안하셨다면 아나콘다 설치 후 파이참이나 vscode같은 IDE 설치하셔서 작업 진행하시는 것을 추천드립니다.
도움이 되었으면 좋겠습니다!!
그럼 화이팅 하십쇼!
배기니어님의 댓글
개발자 까지는 아니지만 프로그래밍 공부하고 있어서 도와드리고 싶네요..
전문가가 아니라 도움되지 않을 수 있다는 점 감안하고 봐주시면 감사하겠습니다!
우선 아랫분 말씀대로 소켓 프로그래밍으로 네트워크는 구현 가능할 것 같습니다.
1. 신호 보내는 쪽을 서버 소켓으로 구현합니다.
2. 신호 받는 pc들을 클라이언트 소켓으로 구현합니다.
3. 신호 받는 pc들에서 작성한 프로그램이 pc가 켜질 때 자동으로 실행되도록 설정
4. 키보드 입출력은 어떤 언어 사용하시는지 모르겠지만 python같은 경우 keyboard 라이브러리 이용하시면 될 것 같습니다. 그냥 'a'처럼 키 하나만 입력받는 것보다는 단어 입력 받는게 혹시 모를 위험에 대비할 수 있을 것 같아요
5. 서버에서는 키보드 입력을 모든 클라이언트에 broadcasting하고 클라이언트는 받기만 하면 될 것 같습니다.
네트워크 통신은 채팅 프로그램 구현하는 방법 구글링해보시면 언어별로 나옵니다!
그 예제 이용해서 조금만 수정하시면 쉽게 작성하실 수 있을 듯 합니다.
도움이 되었으면 좋겠네요...
그럼 화이팅 하십쇼!
전문가가 아니라 도움되지 않을 수 있다는 점 감안하고 봐주시면 감사하겠습니다!
우선 아랫분 말씀대로 소켓 프로그래밍으로 네트워크는 구현 가능할 것 같습니다.
1. 신호 보내는 쪽을 서버 소켓으로 구현합니다.
2. 신호 받는 pc들을 클라이언트 소켓으로 구현합니다.
3. 신호 받는 pc들에서 작성한 프로그램이 pc가 켜질 때 자동으로 실행되도록 설정
4. 키보드 입출력은 어떤 언어 사용하시는지 모르겠지만 python같은 경우 keyboard 라이브러리 이용하시면 될 것 같습니다. 그냥 'a'처럼 키 하나만 입력받는 것보다는 단어 입력 받는게 혹시 모를 위험에 대비할 수 있을 것 같아요
5. 서버에서는 키보드 입력을 모든 클라이언트에 broadcasting하고 클라이언트는 받기만 하면 될 것 같습니다.
네트워크 통신은 채팅 프로그램 구현하는 방법 구글링해보시면 언어별로 나옵니다!
그 예제 이용해서 조금만 수정하시면 쉽게 작성하실 수 있을 듯 합니다.
도움이 되었으면 좋겠네요...
그럼 화이팅 하십쇼!