#include "apr_network_io.h"
#include "apr_errno.h"
#include
"apr_general.h"
#include "apr_lib.h"
int main (int argc, char *argv[])
{
apr_pool_t *p;
apr_status_t rv;
apr_socket_t *sock
= NULL;
apr_size_t len;
apr_sockaddr_t *to;
const char *addr =
"100.100.100.100";
char recvbuf[4096];
apr_initialize();
apr_pool_create(&p, NULL);
rv = apr_socket_create(&sock, APR_INET, SOCK_DGRAM, 0,
p);
if (rv != APR_SUCCESS)
{
fprintf(stderr,
"cannot create socket\n");
exit(1);
}
rv = apr_sockaddr_info_get(&to, addr, APR_UNSPEC,
10000, 0, p);
if (rv != APR_SUCCESS)
{
fprintf(stderr,
"cannot get info on to\n");
exit(1);
}
rv = apr_socket_opt_set(sock, APR_SO_REUSEADDR,
1);
if (rv != APR_SUCCESS)
{
fprintf(stderr,
"fail on socket_opt_set\n");
exit(1);
}
len = strlen(argv[1]) + 1;
rv =
apr_socket_sendto(sock, to, 0, argv[1], &len);
if (rv
!= APR_SUCCESS)
{
fprintf(stderr,
"fail sendto\n");
exit(1);
}
len = 4096;
rv =
apr_socket_recvfrom(to, sock, 0, recvbuf, &len);
if
(rv != APR_SUCCESS)
{
fprintf(stderr,
"client: fail on recvfrom\n");
exit(1);
}
printf("client: recieved
%s\n", recvbuf);
apr_socket_close(sock);
return
0;
}
gcc -g -o testclient testclient.c -I/usr/local/apr/include/apr-1
-L/usr/local/apr/lib -lapr-1 -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE
-D_LARGEFILE64_SOURCE
'C언어' 카테고리의 다른 글
valgrind (0) | 2006.06.23 |
---|---|
strcat -- (0) | 2006.05.19 |
복잡한 함수포인터 읽기(고급) (0) | 2006.05.08 |
복잡한 함수포인터 (고급) (0) | 2006.05.05 |
iconv 를 이용한 문자열 변환(utf-8) (0) | 2006.04.04 |