Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <malloc.h>
- #include <ogcsys.h>
- #include <gccore.h>
- #include <network.h>
- #include <debug.h>
- #include <errno.h>
- #include <wiiuse/wpad.h>
- static void *xfb = NULL;
- static GXRModeObj *rmode = NULL;
- void *initialise();
- void *httpd (void *arg);
- static lwp_t httd_handle = (lwp_t)NULL;
- //---------------------------------------------------------------------------------
- int main(int argc, char **argv) {
- //---------------------------------------------------------------------------------
- s32 ret;
- char localip[16] = {0};
- char gateway[16] = {0};
- char netmask[16] = {0};
- xfb = initialise();
- printf ("\nlibogc network demo\n");
- printf("Configuring network ...\n");
- // Configure the network interface
- ret = if_config ( localip, netmask, gateway, TRUE);
- if (ret>=0) {
- printf ("network configured, ip: %s, gw: %s, mask %s\n", localip, gateway, netmask);
- LWP_CreateThread( &httd_handle, /* thread handle */
- httpd, /* code */
- localip, /* arg pointer for thread */
- NULL, /* stack base */
- 16*1024, /* stack size */
- 50 /* thread priority */ );
- } else {
- printf ("network configuration failed!\n");
- }
- while(1) {
- VIDEO_WaitVSync();
- WPAD_ScanPads();
- int buttonsDown = WPAD_ButtonsDown(0);
- if (buttonsDown & WPAD_BUTTON_HOME) {
- exit(0);
- }
- }
- return 0;
- }
- #define SRV_IP "192.168.1.130"
- #define BUFLEN 512
- #define NPACK 10
- #define PORT 9930
- //---------------------------------------------------------------------------------
- void *httpd (void *arg) {
- //---------------------------------------------------------------------------------
- s32 sock;
- struct sockaddr_in si_other;
- int i, slen=sizeof(si_other);
- char buf[BUFLEN];
- sock = net_socket (AF_INET, SOCK_DGRAM, IPPROTO_IP);
- if (sock == INVALID_SOCKET) {
- printf ("Cannot create a socket!\n");
- } else {
- memset((char *) &si_other, 0, sizeof(si_other));
- si_other.sin_family = AF_INET;
- si_other.sin_port = htons(PORT);
- si_other.sin_len = 8;
- if ((si_other.sin_addr.s_addr = inet_addr(SRV_IP)) == 0) {
- fprintf(stderr, "inet_aton() failed\n");
- }else{
- for (i=0; i<NPACK; i++) {
- printf("Sending packet %d\n", i);
- sprintf(buf, "This is packet %d\n", i);
- int n;
- if((n = net_sendto(sock, buf, BUFLEN, 0, &si_other, 8)) < 0)
- printf("Failed. %d.",n);
- }
- net_close (sock);
- }
- }
- return NULL;
- }
- //---------------------------------------------------------------------------------
- void *initialise() {
- //---------------------------------------------------------------------------------
- void *framebuffer;
- VIDEO_Init();
- WPAD_Init();
- rmode = VIDEO_GetPreferredMode(NULL);
- framebuffer = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
- console_init(framebuffer,20,20,rmode->fbWidth,rmode->xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ);
- VIDEO_Configure(rmode);
- VIDEO_SetNextFramebuffer(framebuffer);
- VIDEO_SetBlack(FALSE);
- VIDEO_Flush();
- VIDEO_WaitVSync();
- if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
- return framebuffer;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement