[SCTP Serv-Clie 샘플 코드 컴파일 및 실행 시]
컴파일,,,
gcc -Wall -g SCTPServer.c -lsctp -o Server
$./Server 실행 시
./Server: error while loading shared libraries: libsctp.so.1: cannot open shared object file: No such file or directory
에러 뜨는데 이유가 뭐일까요,,, SCTP 샘플로 돌려볼려고하는데 정말 걸리는게 많네요
현재 리눅스 환경에서
lksctp-tools-1.0.10-3.el5.rfx.x86_64.rpm 패키지 설치한 상태입니다!,,
//SCTPServer.C
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX_BUFFER 1024
void die(char *s)
{
perror(s);
exit(1);
}
int main()
{
int listenSock, connSock, ret, in , flags, i;
struct sockaddr_in servaddr;
struct sctp_initmsg initmsg;
struct sctp_event_subscribe events;
struct sctp_sndrcvinfo sndrcvinfo;
//char buffer[MAX_BUFFER+1];
listenSock = socket( AF_INET, SOCK_STREAM, IPPROTO_SCTP );
bzero( (void *)&servaddr, sizeof(servaddr) );
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl( INADDR_ANY );
servaddr.sin_port = htons(MY_PORT_NUM);
ret = bind( listenSock, (struct sockaddr *)&servaddr, sizeof(servaddr) );
/* Specify that a maximum of 5 streams will be available per socket */
memset( &initmsg, 0, sizeof(initmsg) );
initmsg.sinit_num_ostreams = 5;
initmsg.sinit_max_instreams = 5;
initmsg.sinit_max_attempts = 4;
ret = setsockopt( listenSock, IPPROTO_SCTP, SCTP_INITMSG,
&initmsg, sizeof(initmsg) );
listen( listenSock, 5 );
while( 1 ) {
char buffer[MAX_BUFFER + 1];
int len ;
printf("Awaiting a new connection\n");
connSock = accept( listenSock, (struct sockaddr *)NULL, (int *)NULL );
if(connSock == -1)
die("accept()");
else
printf("New client connected....\n");
in = sctp_recvmsg( connSock, (void *)buffer, sizeof(buffer),
(struct sockaddr *)NULL, 0, &sndrcvinfo, &flags );
printf(" Data : %s\n", buffer);
close( connSock );
}
return 0;
}


aaa
/usr/lib64/libsctp.so 파일있는지 확인
lksctp-tools-devel 패키지
lksctp-tools-devel 패키지 설치하셔서 개발하세요.
헤더파일이 없어서 컴파일도 안되야 정상인데, 이걸 지나서 링크까지 무사히 됐고, 심지어 실행까지 된다는 건... 뭔가 수작업으로 이리저리 설치를 시도한 결과 몹시 암울한 상황에 빠져계신 건지도 모르겠습니다.