참고할만한 다중소켓서버 코드 없을까요?
글쓴이: maindb / 작성시간: 수, 2004/06/16 - 11:04오전
C 는 잼뱅이라서...
열심히 구글링 해서 찾고 있는데...
일반 단일 소켓서버 프로그램 코드들은 많이 나오는데
다중소켓서버는 보이질 않네요.
허접한 실력의 PHP 초보 개발자인데...
요구하는 것은 php 의 fsockopen 으로 열어서
fput 으로 메세지를 보내면 소켓서버데몬이 그 메세지를 받아서
system() 으로 특정프로그램을 실행하면 되는 것입니다.
단일 소켓서버 프로그램 코드들이 보여서 적용해 보았는데...
잘 되긴 잘 되는데 동시에 여러곳에서 fsockopen 을 했더니
제대로 처리가 안되고 빼 먹고 지나가는 것들이 있더군요.
이것저것 열심히 구글링 해봐서 찾아본 결과가 다중소켓서버여야 한다는군요.
여기까지는 알아내서 현재 열심히 찾아보고는 있는데 힘드네요 ㅜ.ㅡ
허접한 실력이 화가 납니다. 질문을 해도 간단한 거라고만 하고... ㅠ.ㅠ
정말 비참함... :cry:
조언을 좀 구합니다.
부탁드립니다.
Forums:
그 서버라는 것이 특정 명령을 실행하면 되는 것이라면... 따로 만들지
그 서버라는 것이 특정 명령을 실행하면 되는 것이라면... 따로 만들지 말고 간단하게 rsh 이나 ssh 등으로도 가능하지 않을까 생각합니다만...
직접 프로그램을 만들어보고 싶어서 그런것인지도 모르죠. :)나중에 r
직접 프로그램을 만들어보고 싶어서 그런것인지도 모르죠. :)
나중에 rsh등을 사용하게 되더라도 원리를 모르고 사용하는것과는 조금 다르지 않을까요?
결과는 같겠지만요. :)
구글링을 이용한 검색결과의 소스 대부분은 fork나 thread를 염두해두지 않은 소스들이
많이 있는것으로 알고 있습니다.
필요한 기능을 위해서는 fork나 thread를 이용하는게 맞는것 같네요.
다중소켓보다는...
즉, socket을 감시하고 있다가 연결이 들어오면 read를 하지말고 fork나 thread로
그 실행권한을 돌려버리고 메인은 다시 socket을 감시하는 형태가되면 될것같은데요.
P.S. : 만일 사용한 소스가 fork나 thread를 사용했다면...
다중소켓도 그리 어려운것은 아닙니다. 물론 이부분도 fork나 thread로 각 소켓마다
하나의 fork나 thread를 할당해주는 방법이나 select를 이용한 방법등을 구사하면
되겠죠.
구글링을 통해서 소스를 받아서 나름대로 공부하는것도 좋지만 일단은 네트워크 프로그램에
관련된 책을 구입해서 읽어보실 것을 권해드리고 싶습니다.
------------------------------
좋은 하루 되세요.
ssh 요? ssh 대하여 아는것이라고는기껏해야 telnet 대용의
ssh 요? ssh 대하여 아는것이라고는
기껏해야 telnet 대용의 Secure Shell 이라는것으로
리모트 터미널 접속하는것과 scp 명령어 가끔사용하는
방법 외엔 아는게 없습니다.
구글링 해봐도 저 위에 두개에 대한 내용밖에 안보이네요.
ssh 로 어떻게 가능하죠? 힌트를 조금만 더 배풀어 주세요 ^^;;;
[quote="maindb"]ssh 요? ssh 대하여 아는것이라고는
ssh my.host.com "/bin/ls -la /"
ssh 관련 키 설정이 되어있다면 login 없이 바로 결과를 화면에 출력할수 있습니다. ssh 로 로긴후에 "" 의 내용을 실행하고 바로 종료한다고 생각하시면 됩니다.
목적을 찾아서... jiNoos
[url]http://people.kldp.org/~eunjea/ssh/
http://people.kldp.org/~eunjea/ssh/
ssh 설치및 사용법을 소개하고있습니다..
jinoos님이 언급하신 키를 사용하여 인증절차를 보안키를 등록해서
별도 입력없이 쉘접속이나 쉘명령을 내릴수있는 방법을 찾으실수 있습니다.
매우 편리한 방법이지요. 사용법을 잘익히시는것이 보안에 안전합니다..
' 형식이 내용을 규정한다. '
[quote="codebank"]직접 프로그램을 만들어보고 싶어서 그런것
어떻게든 귀찮은건 피해가 보자는게... 여기 KLDP 분위기 아닌가해서요... -_-;
Re: 참고할만한 다중소켓서버 코드 없을까요?
문득...... 이미 되어 있을 수도 있지만..
혹시 잘 동작하는데.. recv를 할때 패킷별루 분류( ? )가 안되는게 아닐까 하는 생각이듭니다.. size를 넣어서 size만큼 받는 걸 넣어 보심이.. :)
참고로.. php쪽에서 10B씩 여럿이 빠방~ 쏘면.. 서버에서 읽을 때 10B씩 읽어지지 않을 수 있습니다.. 혹시나 해서 확인사살이었습니다.. -_-a
댓글 달기