getpeername 은 서버에 접속한 클라이언트의 주소를 알아내는 함수잖습니
까?
그런데 printf("ip %s, port %d\n", inet_ntoa(clientaddr.sin_addr),
ntohs(clientaddr.sin_port));
이렇게 해도 잘 클라이언트의 주소가 나오는데
getpeername 과의 차이점은 무엇인지요??
안녕하세요
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를 이용한 통신쏘스를 알고 계신분들도 글좀 올려주세요..