프로그래밍 QnA

ywh1120의 이미지

리눅스 윈도우 사이의 소켓 통신 질문

제가 이번에 리눅스와 윈도우 간의 소켓 통신으로 어느 정도 간단한 네트워크 게임을 구상 중에 있습니다.
그래서 제작하기 전에 먼저 리눅스와 윈도우 사이의 소켓 통신이 원활하게 되는지 실험을 해볼려고 각자 에코 서버를 두고 클라이언트 예제를 코딩하여 실험 해보았습니다.
근데 제 생각대로 되지 않는 군요..-_-
리눅스를 서버로 두고 윈도우를 클라이언트로 두고서 연결 시도를 해봤는데 클라이언트 쪽에서 깜빡깜빡 거리더니 그냥 종료가 되어버렸습니다.
그래서 혹시 코드가 아예 안되는 건가 싶어서 이번엔 반대로 윈도우를 서버로 두고 리눅스를 클라이언트로 해봤는데, 이번에는 신기하게 잘 되더군요..-_-;;
대체 리눅스 - 윈도우는 안 되면서 왜 윈도우 - 리눅스는 되는 걸까요..;;
코드 첨부하겠습니다.

gura2013의 이미지

www.vovida.org 싸이트 어떻게 이용할 수 있을까요?


안녕하세요 RTSP 관련하여 구현을 해보고자
참고자료를 찾던중
http://www.vovida.org 를 알게되었는데 도무지 데이터에 접근할 수가 없네요
사이트가 폐쇄된건가요??

RTSP 관련 프로토콜스텍을 다운받을려고 구글신께 ftp주소를 검색하다 질문드려봅니다

obshaha의 이미지

tcp이용한 소켓통신에서 전송진행율을 %로 계산하는 방법에 대해...

tcp를 사용한 간단한 파일전송 프로그램을 짜고 있습니다.
제가 알고 싶은건.. 예를 들어 100mb 짜리 파일을 1mb 단위로 전송을 한다고 치면..
10mb를 보냈을때 파일전송이 10% 완료된거지 않습니까?

위처럼 10% 단위로 파일전송 완료(?) 된것을 출력하고 싶습니다.
제가 생각해봤을때는 전체크기의 0.1을 곱한 값을 if문을 통해 비교하려고 하니.. 문제가..
꼭 0.1을 곱한값과 같아진다는 보장도 없고.. 몇byte씩 보낼지에 따라..
그리고 조건을 0.1곱한값(10%)보다 크거나 같게 주게 되면 처음에 10%는 출력이 되더라도..
10%단위씩 찍어야 되니까 20%가 되기전.. 그러니까 10.1~19.9% 사이의 값은 다 10%로 출력이 되겠더라고요..

딱히 위 생각말고는 어떻게 해야될지 뾰족한 수가 떠오르질 않아 질문드립니다.
어떻게 해야 파일을 10%씩.. ex) 10%완료 / 20%완료 / 30%완료... 이런식으로 출력되게 할 수 있을까요?

읽어주셔서 감사드립니다.

dhnam2211의 이미지

arm OSSR에 대해 질문 있습니다. ㅜㅜ


임베디드 공부로 arm을 겉핧기하고 있는 초보 컴공학부생입니다.

그런데 OSSR에 대해 의문점이 있어서 질문드립니다.

OSCR하구 OSMR값이 같아 졌을때, 인터럽트가 발생하여, OSSR의 해당 bit 값이 1로 바뀐다고 알고 있습니다.

그런데, 인터럽트를 클리어하여 또 발생시키려 한다면, OSSR의 해당 bit값을 1로 해줘야한다고 하는데...

이부분이 이해가 잘 안갑니다. ㅜㅜ 이미 1인 부분에 또 1을 써준다는게 무슨 의미 인지요?

혹시 코딩할때는 1을 써주는데, 내부적(하드웨어적)으로는 0으로 바뀌는 건가요?
(만약 이렇다면, 구지 해당 bit에 1을 써준다는 표현을 사용하는 이유가 있나요?, )

답변부탁드립니다.

dndlf2의 이미지

램 디스크를 타켓보드에 올릴 경우에 발생되는 warning!!

제목과 같이 타켓보드에 램 디스크를 올릴 경우 아래와 같은 메세지가 나옵니다.

xxswanixx의 이미지

dhcpd-isc에 관련된 질문입니다 ㅠ gateworks 보드에 포팅해서 rc에 넣었는데...

gateworks보드에 dhcpd-isc를 포팅해서
rc에 넣었는데
dhcpd의 기능을 제대로 하지를 못합니다.
혹시나해서 dhcpd.sh라는 쉘을 하나 만들어서
dhcpd를 실행시켜도 기능을 못합니다.

#. ./dhcpd.sh
라고 실행시키면 됩니다 ㅠ

혹시나해서 소스를 고쳐서 데몬을 만들어서 돌렸을때
#./dhcpd.sh로 실행시켜도 제기능합니다.

하지만 데몬으로 만들어도 rc에 넣으면 안됩니다.

무슨차인지 도무지 알수가 없네요

왜 기능을 수행하지 못하는가 스누핑해본결과

클라이언트의 discover와 request에 즉각즉각 반응을 못합니다.

결국 타임이 안맞아서 ack를 보내지 못하는거 같습니다.

소스 코딩으로는 해결될것 같지 않아 원론적인 문제를 아시는분 답변 부탁드립니다.

필요하시면 스누핑 결과 등등을 올려드리겠습니다.

일주일째 삽질중이네요 ㅠ

athxue의 이미지

Linux에서 상호배제 질문입니다~

지금 구현하려고 하는 프로그램이 여러개의 프로세스가 각각 쓰레드들을 만들고 시스템에 딱 하나만 있는 자원을 공유해서 사용하려고 합니다.
이때 상호배제를 하기 위해서 semop를 통해 상호 배제를 하면 상호배제가 가능할까요?
가령 pthread로 만든 쓰레드를 위해 추가적으로 mutex를 한번 더 잡아주어야 되는건지 궁금합니다.

그리고 한 프로세스가 세마포어를 잡고 있다 죽었을때 잡았던 세마포어가 자동으로 풀리는건가요? 아니면 잡은상태로 유지되어서 다른 프로세스가
세마포어를 잡을때 데드락이 발생할 수 있을까요?

dorado2의 이미지

특정 RAM 영역 mmap 제한 방법?


BIOS에 의해 reserved된 영역이 있습니다. (수 kB 정도. /proc/iomem 쪽을 보면 reserved로 보이는 상태)

해당 영역에는 특정 데이터가 존재하고, 이 데이터를 읽어서 사용합니다.
ioremap나 mmap(/dev/mem 사용) 모두 읽어오는데 문제는 없습니다.

문제는 이 영역의 접근을 제한하고 싶다는데 있습니다.
하나의 device driver만 해당 영역을 ioremap해서 쓰고 싶은데요.
그리고 ioctl을 사용한 데이터 접근시 capabilities를 사용해서 (CAP_SYS_ADMIN 등)
특정 권한을 가진 사용자만 읽을 수 있게 하려고 합니다.

문제는 해당 영역을 mmap하면 다른 응용프로그램에서도 읽어갈 수가 있는데, 이를 막을 방법이 있을까요?
STRICT_DEVMEM config는 제외하고요.

mmap할 때 해당 영역은 못하도록 kernel source를 고쳐야 할까요? side-effect나 속도 저하가 없을지 우려가 되어서..

xerak의 이미지

wav 파일에서 특정 바이트에 있는 16진수 값을 (리틀엔디안) 읽어와서 정수로 바꾸고 싶습니다.

안녕하세요. 부족한 제 실력때문에 몇일째 고생하고 있습니다. ㅠㅠ

wav파일을 헥사에디터(울트라에디터 사용)를 열어보면 그림과 같습니다.
(첨부한 그림 참고해주세요^^;)

여기서 예를들어서 37바이트 부터 4바이트( 64 61 74 61) 를 읽어서 정수로 변환하고 싶습니다.

fseek으로 포인터를 옮겨서 원하는 부분만 잘라내어서

char *buf; 를 선언하여 buf에다가 넣어두었습니다. (buf에는 data 라는 문자열이 들어가있음).
( buf 안에 들어간 data라는 값이 문자열 인가요? 16진수 인가요? )

제가 질문드리고 싶은 것은

이 data라는 문자가 리틀엔디안이기 때문에 61746164(16진수)를 10진수로 변환하면 1635017060 이 되는데

이 10진수 값을 구하고 싶습니다.

어떻게 구하면 좋을까요? 답변 부탁드립니다. 짧은 조언이라도 부탁드려요.

-윈도우 환경에서 비주얼 스튜디오 2008을 사용하고 있습니다.

dingkyu의 이미지

사설 IP를 가진 일반 컴퓨터와 외부의 공인 IP를 가진 서버와의 UDP 통신상의 고민입니다.

위 그림과 같은 상황이 있습니다.

서버는 UDP통신만 지원하고 하나의 UDP소켓을 열어놓고 입력을 대기 중입니다.
각 노드들은 먼저 서버로 특정 데이터를 전송해서 (노드들은 서버의 주소를 미리 알고 있습니다.)자신의 존재를 서버에게 알립니다. 그 다음 서버는 위 그림에서 어느 한 노드가 데이터를 서버로 전송하면, 서버는 그 데이터를 받아 나머지 노드들에게 전달해야 합니다.

서버는 각 노드들의 IP 주소를 보관하고 있다가 데이터를 보낸 IP를 제외하고 나머지 리스트의 IP 주소들에게 받은 데이터를 다시 전송하도록 하면 되겠다 싶었는데, 제가 공부한 바로는 UDP통신은 상대방의 IP address 밖에 모르는 것으로 알고 있습니다. 즉, 위 상황에서는 제가 알기로는 3개의 노드들이 전부 서버에 접속하게 되면 서버에서는 전부 동일한 IP를 사용하는 노드로 인식할 것이라는 겁니다.

페이지

프로그래밍 QnA 구독하기