[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 패키지 설치하셔서 개발하세요.
헤더파일이 없어서 컴파일도 안되야 정상인데, 이걸 지나서 링크까지 무사히 됐고, 심지어 실행까지 된다는 건... 뭔가 수작업으로 이리저리 설치를 시도한 결과 몹시 암울한 상황에 빠져계신 건지도 모르겠습니다.
댓글 달기