안녕하세요. ^^
저도 drupal을 홈페이지에서 사용하고 있는데, drupal과 연동 가능한 대화방 서비스를 공개했습니다.
관심 있으면 http://www.gagalive.kr/live/livechatexample2 참고하시길 바랍니다.
Client은 플래시를 이용하였고, socket connection으로 서버에 연결을 지속시킵니다.
로직을 어떻게 새워야 할지 몰라서 질문 드립니다.
많은 양의 데이터가(각 전문 마다 8KByte) 초당 500 건정도 들어 옵니다.
클라이트 프로그램에서 socket를 통해서 데이터를 보내면 스레드를 생성(main 스레드) 시켜,
요즘에는 리눅스에서 어떤 소켓 방식을 사용하나요? 요즘에도 예전과 같이 epoll이 대표적인가요? 아니면 새로운 기술이 생겼는지 궁금합니다.
저는 3년 전에 select & thread 방식으로 서버 프로그램을 작성했었는데,
서버와 클라이언트간에 주고 받는 패킷을 쉽고 유연하게 관리할 수 있는 방법이 있는지 알고 싶습니다.
예를 들어, c 에서 소켓으로 패킷을 보낼때 기본적으로 아래와 같이 합니다.
int maxPacketLen = 64; char packet[maxPacketLen]; int packetLen = 0;
안녕하세요..
client 측에서 connect() 완료후 return 되는 fd 값을 2 개의 thread 가 각각 send 와 recv 를 분담해서 하고자 할 때, 문제가 없는지요?
send 를 여러 thread 가 한다거나, recv 를 여러 thread 를 하는 경우에는 lock 을 걸어서 한놈만 접근하도록 해야하는건 맞는것 같은데요..
리눅스에서 PF_PACKET으로 생성한 소켓을 통해 low level 통신을 구현하려고 합니다.
Kernel 레벨이 아닌 User 레벨의 프로그램을 만드려고 하는데요, 궁금한 점이 생겨서 질문드립니다.
제가 지금까지 찾아본 바에 의하면 저렇게 생성한 소켓으로 recvfrom()을 이용하여 이더넷 프레임을 읽게되면
오늘 캐이블을 뽑아놓고 Eclipse로 java 프로그램을 만들게 되었는데요,
Socket 에러가 나더군요....
아마도 Test Runner 가 remote 에서 수행되는것 같은데...
이거 컴터 eclipse 껏다가 다시 켜니까 캐이블 빼고도 다시 되더라구요...
eclipse실행시에 junit plugin이 인터넷 연결 유무를 확인하는 건가?
내용이 애매한듯 해서 다시 질문드립니다;
그냥.. 기억이나 되살릴겸 간단히 테스트 프로그램을 짰는데... 원하는대로 동작하지 않는군요;;
만약 생각되러라면 c 코드로 된 서버에 자바로 만든 클라이언트가 메시지를 쏘면
특정포트에 대기하고 있는 자바 ServerSocket 데몬이 있습니다. client 는 어떤 데이터를 보내주고 데몬이 client 데이터를 받아 처리한 후 다시 client 에게 리턴해 주는 역할을 합니다.
물론 서버에서 accept 하여 생성한 socket 은 close 해 줍니다만, (물론 client단의 socket도 close합니다.)
서버 프로그램을 운용중에 있습니다. 다수의 클라이언트와 접속, 재접속 등의 테스트를 하다가 프로세스가 종료되었음에도 불구하고 프로세스가 점유했던 port가 반환이 되지 않습니다.
netstat -an 으로 검색을 해 보면 이미 종료한 프로세스가 쓰던 port로 LISTEN하나와 CLOSE_WAIT가 다수 검색이 됩니다.