안녕하세요
serial 통신 프로그램을 만들어 보려고하는데요
지금은 실험정도 수준으로 간단하게 만들려고 하는데 write 가 안됩니다.
일단 소스를 보시고 조언을 주시면 감사하겠습니다.
한대의 컴퓨터에서 com1 과 com2 를 시리얼 케이블(크로스)로 연결하고 하고 있습니다.
간단한 서버/클라이언트 프로그램을 개발중인데요.
클라이언트를 기다리는 동안에는 서버가 죽지는 않고 있는데요.
만약 몇시간동안 클라이언트 접속이 없다가
클라이언트가 접속이 있으면 서버가 그냥 죽어버리는 오류가 있어요.
공백인 시간이 10시간 이하로는 이런 현상이 없는 것 같은데
그 이상이 되면 데게 죽어버립니다.
예측되는 원인을 좀 알려주시면 좋겠습니다. 조언부탁드립니다.
환경
Red Hat Linux release 6.2 (Zoot)
Kernel 2.2.19-6.2.12enterprise on a 2-processor i686
지금 loop문을 돌리면서 시간측정을 하고 있는데
예를 들어,
while(1){
now1 = 시간측정
task...
now2 = 시간측정
now = now2 - now1;
print(now)
}
이런식의 루틴을 돌리면 처음 수행시의 시간이
많이 걸리네요.
2-3배 정도 더 많은 시간이 소요되는데...
현재 저는 adpatec사의 ieee1394 card를 가지고 있구요 리눅스상에서 이것을 실험하고 있습니다.
제 card는 port가 3개인데, 이중 두 port를 가지고 통신을 실험하려합니다.
6 pin to 6pin라인을 한개 가지고 두 port를 연결해서 한쪽은 send 한쪽은 receive하는 기능을 만드는 거지요..
해보는데 잘 안되네요.. 혹시 이것이 가능한지도 모르겠구요...
ieee1394는 자동으로 port를 setting하는데
우리가 임의로 setting할 수도 있나요?
혹시 이런 ieee1394를 이용한 통신쏘스를 알고 계신분들도 글좀 올려주세요..
glade를 이용하여 프로그램을 하고 있는데여...프로그램의 속도때문에
fork()해서 프로세스를 생성 작업을 하고 있는데여...속도는 좋아지는데
child가 종료후에 에러가 납니다. 에러는
Xlib unexpected async.....뭐 이런식으로 해서 에러가 나는데여....
아마도 동기화문제인거 같습니다. 그래서 glib로 제공된 쓰레드를 사용하
려고 하는데 어떻게 사용하는지 잘 모르겠네여...
가장기본적인 샘플코드만....이라도 설명부탁드리겠습니다.
main(){