X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=blobdiff_plain;f=test%2Fserver.c;h=ee1ac89315b58087a5e1b8445efa74885de780e5;hb=cc06ef36559e9a20d1993f81829beb6b876222d4;hp=b0f1ea8d7475837e20dd352d74222293b68afa45;hpb=6d0e2825e6cca633d831ed3ce790b678d042131c;p=swifty.git diff --git a/test/server.c b/test/server.c index b0f1ea8..ee1ac89 100644 --- a/test/server.c +++ b/test/server.c @@ -1,4 +1,4 @@ -#include "../src/kernel/swift.h" +#include "../src/kernel/mptp.h" #include #include @@ -7,23 +7,32 @@ #include #include +#define ADDR 0x8182A8C0 +#define NUM_BUF 10 + int main(int argc, const char *argv[]) { int sock; + int i; - sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_SWIFT); + if (argc != 2) { + fprintf(stderr, "USAGE: %s listening_port\n", argv[0]); + return -1; + } + + sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_MPTP); if (sock < 0) { perror("Failed to create socket"); return -1; } - int size = sizeof(struct sockaddr_swift) + sizeof(struct swift_dest); - struct sockaddr_swift *saddr = malloc(size); + int size = sizeof(struct sockaddr_mptp) + sizeof(struct mptp_dest); + struct sockaddr_mptp *saddr = malloc(size); memset(saddr, 0, size); saddr->count = 1; - saddr->dests[0].addr = 0x0100007F; - saddr->dests[0].port = 100; + inet_aton(ADDR, &(saddr->dests[0].addr)); + saddr->dests[0].port = htons(atoi(argv[1])); if (bind(sock, (struct sockaddr *) saddr, size) < 0) { perror("Failed to bind socket"); @@ -31,25 +40,30 @@ int main(int argc, const char *argv[]) return -1; } - char buf[256]; - struct iovec iov[1]; + char buf[NUM_BUF][10240]; + struct iovec iov[NUM_BUF]; struct msghdr msg; - struct sockaddr_swift *from = malloc(size); + size += (NUM_BUF - 1) * sizeof(struct mptp_dest); + struct sockaddr_mptp *from = malloc(size); memset(&msg, 0, sizeof(msg)); memset(&iov, 0, sizeof(iov)); memset(from, 0, size); - iov[0].iov_base = buf; - iov[0].iov_len = sizeof(buf); + for (i = 0; i < NUM_BUF; i++) { + iov[i].iov_base = buf[i]; + iov[i].iov_len = sizeof(buf[i]); + } msg.msg_iov = iov; - msg.msg_iovlen = 1; + msg.msg_iovlen = 10; msg.msg_name = from; msg.msg_namelen = size; int ret, fromlen; + sleep(20); + ret = recvmsg(sock, &msg, 0); if (ret < 0) { perror("Failed to recv on socket"); @@ -57,7 +71,9 @@ int main(int argc, const char *argv[]) } printf("Received %d bytes on socket\n", ret); - printf("buf=%s\n", buf); + for (i = 0; i < from->count; i++) { + printf("buf=%s from %s:%d\n", buf[i], inet_ntoa(from->dests[i].addr), from->dests[i].port); + } if (close(sock) < 0) { perror("Failed to close socket");