프로그래밍 QnA

superkkt의 이미지

#ifndef 사용법에 대한 질문입니다.

[code:1]#include <stdio.h>
#include <sys/types.h>

#ifndef uint_t_define
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
#define uint_t_define
#endif

struct ip_header {
uint8_t version_ihl;
uint8_t tos;
uint16_t len;
uint16_t ident;
uint16_t flags_fragment;
uint8_t ttl;
uint8_t protocol;
uint16_t cksum;
uint32_t src;
uint32_t dst;
};

struct tcp_pseudo_header {
uint32_t src;
uint32_t dst;
uint8_t not_use;
uint8_t protocol;
uint16_t len;
};

struct tcp_header {

cococo의 이미지

Block mode로 read 할 때 시피유 사용에 관한 질문입니다.

안녕하십니까. 주말 잘 보내셨는지요. 오늘도 어김없이 질문을... -_-;;

pipe로 흘러 들어오는 데이터를 read() 로 읽어 처리하려 하는데요. 이걸 Thread에서 처리합니다.

근데, 만일 보내는 쪽에서 무언가 사정이 생겨서 뮝기적 거리면, read() 는 데이터 다 들어올 때까지 기다리잖아요?
그렇다면, 기다리는 동안, cpu잡아 먹나요? 아님 block되어 있으면 자동으로 context switching 되서 다른 것(thread던, process던 간에) 이 실행되도록 하나요?

아시는 분... 답변 좀... ^^;;

superkkt의 이미지

IP 헤더를 만들때 1바이트 미만도 엔디안을 고려해야 하나요?

아래와 같이 IP 헤더 구조체를 선언했습니다.

struct ip_header {
	uint8_t		version:4;
	uint8_t		ihl:4;
	uint8_t		tos;
	uint16_t	len;
	uint16_t	ident;
	uint8_t		flags:3;
	uint16_t	fragment:13;
	uint8_t		ttl;
	uint8_t		protocol;
	uint16_t	cksum;
	uint32_t	src;
	uint32_t	dst;
};

그리고 아래와 같이 값을 대입한 후.. 길어서 뒤에는 생략했습니다.

	ip->version = 4;
	ip->ihl = 5;
	ip->tos = 0;

이렇게 패킷을 만들고 raw socket으로 보냈는데 제대로 동작을 안해서 tcpdump로 패킷을 찍어봤더니 바로 위 부분이 의도한대로라면 4500으로 나와야 되는데 5400으로 나오네요. (아래 dump 중 첫번째 줄 마지막 부분)

mr.lee의 이미지

trac 의 위키문서를 pdf로 변환

프로젝트 형상관리 및 이슈트래킹으로 trac을 사용하고 있습니다.
상세설계문서를 ms word로 작성하지 않고 trac의 위키에서 작성할려고 합니다만.. 때론 외부문서로 뽑아내야 할 필요성이 있는데요..
trac의 위키문서를 (moinmoin 포맷과 거의 같다고 알고있습니다) word나 pdf로 변환해주는 툴이 있는지요?

mr.lee의 이미지

java 에서 message queue 사용

자바에서 C/C++과의 IPC를 위해 메세지큐를 사용 할려고 합니다.
JNI로 해야할것 같은데 관련 자료나 정보있으시면 부탁드립니다.

JMS 도 C/C++ 인터페이스가 있긴 하지만, 메세지 방식의 미들웨어 프레임웍이 필요한게 아니라 실제 커널에서 관리되는 IPC 설비인 message queue를 사용해야만 하는 상황이라서요.

JNI에서 메세지큐 사용하는거랑 unix domain socket으로 통신하는거랑 두가지를 검토중입니다..각각 장단점이 있을것 같은데.
여기에 대한 조언도 해주

lovemyin의 이미지

Arcnet 에 관하여

안녕하세요.
Arcnet으로 나오는 데이터를 캡쳐링 하는 방법을 알 수 없을까해서 이렇게 글을 올립니다.
Arcnet이라는 것 자체가 생소해서 어떻게 시작을 해야할지 막막하네요. 혹시 Arcnet을 경험해보신분이 있으시면 좋은 조언 부탁드립니다.

체스맨의 이미지

RTS 에서 파일 디스크립터마다 고유의 데이터를 부가할 수 있을까요?

epoll 은 fd 에 입출력 이벤트가 발생한 경우, epoll_ctl 호출시 struct epoll_event* 인자에 저장해둔 포인터값을 얻어올 수 있습니다.

그런데 RTS 로 이와같은 구현을 어떻게 할 수 있는지 모르겠는데요.
sigqueue 에 의해 sigval 을 보낼 수는 있지만, 입출력 시그널이 발생할 때 sigval 을 보내는 방법은 찾지 못했습니다.

그래서 지난번에 다음과 같은 질문을 올렸습니다만,
http://bbs.kldp.org/viewtopic.php?t=69025
제가 구현하려는 의도에 너무 치우쳐서 제가 알고싶은 본질을 제대로 전달하지 못했던 것 같아 다시 질문 드립니다. RTS 에 의해 어떻게 할 수 있는지를 결국 못찾았기 때문에, fd 에 임의 포인터를 대응시킬 방법이 있을지 모른다는 생각에 지난번과 같은 질문을 드렸었구요. 이 방법도 찾지 못했습니다.

powerc20의 이미지

포인터 + 포인터 에서 컴파일 에러 문제입니다.

포인터 + 포인터에서 에러가 발생하는 이유를 알고 싶어 글 남깁니다. 에러 종류( error: invalid operands to binary )

아래는 제가 테스트 해 본 파일과 실행 결과입니다.

컴파일 환경은

[powerc20@step09 app]# gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux

ironboy의 이미지

eth0,1,2,3 이렇게 4개의 인터페이스를 어떻게 하나로 묶어야 할까요?

하핫... 어떻게 검색을 해야할 지,
질문을 해야할지.. 감이 안잡히네요.

질문을 예를 들어서...
질문하자면..,

PC에다가 5장의 랜카드를 꼽고,
기존의 IP공유기와 같은 기능을 구현하기위해,

eth0 - WAN
eth1 - 4 - LAN

요렇게 환경을 설정하려고 한다면...
기본적으로 eth1 ~ eth4까지는
같은 네트웍이니.... 마치 HUB와도 같이
서로 패킷을 바이패스해야 하잖아요?

이걸 어떻게 설정해야 하죠? (어디서 설정해야하죠?)

..........

즉, 두장의 랜카드를 이용해서, IP공유기의 기능을

vudghkzm의 이미지

2개 이상의 네크워크 카드와 아이피가 있을 때 클라이언트측 소켓의 아이피는 어디로 지정되나요?

리눅스를 사용하는 머신이 있습니다. 이 머신에는 네트워크 카드가 2개 있고요, 각각에 서로 다른 아이피가 할당되어 있습니다. 각각 eth0, eht1 이런식으로 설정된 상태입니다.

이 머신에서 클라이언트 소켓을 열었습니다.

이럴 경우 서버 측에서 연결된 클라이언트 소켓의 아이피를 찍어보았을 때, 2개의 아이피중 어느 아이피가 찍히나요?

페이지

프로그래밍 QnA 구독하기