mirror of
https://github.com/clearlinux/graphene.git
synced 2026-09-06 13:51:28 +00:00
Plenty of bugfixes for Linux kernel later than 3.5 and Ubuntu later than 10.10. More organized code to improve portability. Regression tests for Pal to test completeness of implementation.
128 lines
3.7 KiB
C
128 lines
3.7 KiB
C
/* -*- mode:c; c-file-style:"k&r"; c-basic-offset: 4; tab-width:4; indent-tabs-mode:nil; mode:auto-fill; fill-column:78; -*- */
|
|
/* vim: set ts=4 sw=4 et tw=78 fo=cqt wm=0: */
|
|
|
|
#include "pal.h"
|
|
#include "pal_debug.h"
|
|
#include "api.h"
|
|
|
|
int main (int argc, char ** argv, char ** envp)
|
|
{
|
|
char buffer1[20] = "Hello World 1", buffer2[20] = "Hello World 2";
|
|
char buffer3[20], buffer4[20];
|
|
int ret;
|
|
|
|
memset(buffer3, 0, 20);
|
|
memset(buffer4, 0, 20);
|
|
|
|
PAL_HANDLE tcp1 = DkStreamOpen("tcp.srv:127.0.0.1:3000", PAL_ACCESS_RDWR, 0, 0, 0);
|
|
|
|
if (tcp1) {
|
|
pal_printf("TCP Creation 1 OK\n");
|
|
|
|
PAL_HANDLE tcp2 = DkStreamOpen("tcp:127.0.0.1:3000", PAL_ACCESS_RDWR, 0, 0, 0);
|
|
|
|
if (tcp2) {
|
|
PAL_HANDLE tcp3 = DkStreamWaitForClient(tcp1);
|
|
|
|
if (tcp3) {
|
|
pal_printf("TCP Connection 1 OK\n");
|
|
|
|
ret = DkStreamWrite(tcp3, 0, 20, buffer1, NULL);
|
|
if (ret > 0)
|
|
pal_printf("TCP Write 1 OK\n");
|
|
|
|
ret = DkStreamRead(tcp2, 0, 20, buffer3, NULL, 0);
|
|
if (ret > 0)
|
|
pal_printf("TCP Read 1: %s\n", buffer3);
|
|
|
|
ret = DkStreamWrite(tcp2, 0, 20, buffer2, NULL);
|
|
if (ret > 0)
|
|
pal_printf("TCP Write 2 OK\n");
|
|
|
|
ret = DkStreamRead(tcp3, 0, 20, buffer4, NULL, 0);
|
|
if (ret > 0)
|
|
pal_printf("TCP Read 2: %s\n", buffer4);
|
|
|
|
DkObjectClose(tcp3);
|
|
}
|
|
|
|
DkObjectClose(tcp2);
|
|
}
|
|
|
|
DkStreamDelete(tcp1, 0);
|
|
DkObjectClose(tcp1);
|
|
}
|
|
|
|
PAL_HANDLE udp1 = DkStreamOpen("udp.srv:127.0.0.1:3000",
|
|
PAL_ACCESS_RDWR, 0, 0, 0);
|
|
|
|
if (udp1) {
|
|
pal_printf("UDP Creation 1 OK\n");
|
|
|
|
PAL_HANDLE udp2 = DkStreamOpen("udp:127.0.0.1:3000",
|
|
PAL_ACCESS_RDWR, 0, 0, 0);
|
|
|
|
if (udp2) {
|
|
pal_printf("UDP Connection 1 OK\n");
|
|
|
|
memset(buffer3, 0, 20);
|
|
memset(buffer4, 0, 20);
|
|
|
|
ret = DkStreamWrite(udp2, 0, 20, buffer1, NULL);
|
|
if (ret > 0)
|
|
pal_printf("UDP Write 1 OK\n");
|
|
|
|
char uri[20];
|
|
|
|
ret = DkStreamRead(udp1, 0, 20, buffer3, uri, 20);
|
|
if (ret > 0)
|
|
pal_printf("UDP Read 1: %s\n", buffer3);
|
|
|
|
ret = DkStreamWrite(udp1, 0, 20, buffer2, uri);
|
|
if (ret > 0)
|
|
pal_printf("UDP Write 2 OK\n");
|
|
|
|
ret = DkStreamRead(udp2, 0, 20, buffer4, NULL, 0);
|
|
if (ret > 0)
|
|
pal_printf("UDP Read 2: %s\n", buffer4);
|
|
|
|
DkObjectClose(udp2);
|
|
}
|
|
|
|
PAL_HANDLE udp3 = DkStreamOpen("udp:127.0.0.1:3001:127.0.0.1:3000",
|
|
PAL_ACCESS_RDWR, 0, 0, 0);
|
|
|
|
if (udp3) {
|
|
pal_printf("UDP Connection 2 OK\n");
|
|
|
|
memset(buffer3, 0, 20);
|
|
memset(buffer4, 0, 20);
|
|
|
|
ret = DkStreamWrite(udp3, 0, 20, buffer1, NULL);
|
|
if (ret > 0)
|
|
pal_printf("UDP Write 3 OK\n");
|
|
|
|
char uri[20];
|
|
|
|
ret = DkStreamRead(udp1, 0, 20, buffer3, uri, 20);
|
|
if (ret > 0)
|
|
pal_printf("UDP Read 3: %s\n", buffer3);
|
|
|
|
ret = DkStreamWrite(udp1, 0, 20, buffer2, "udp:127.0.0.1:3001");
|
|
if (ret > 0)
|
|
pal_printf("UDP Write 4 OK\n");
|
|
|
|
ret = DkStreamRead(udp3, 0, 20, buffer4, NULL, 0);
|
|
if (ret > 0)
|
|
pal_printf("UDP Read 4: %s\n", buffer4);
|
|
|
|
DkObjectClose(udp3);
|
|
}
|
|
|
|
DkStreamDelete(udp1, 0);
|
|
DkObjectClose(udp1);
|
|
}
|
|
|
|
return 0;
|
|
}
|