Example #1
0
QBBSd()
{
	int	udp_sock,
		tcp_sock;
	fd_set fdmask;

	if((udp_sock = udp_open(1)) < 0)
		logsyserr("<getconnect> could not get UDP socket");

	if((tcp_sock = tcp_open(1)) < 0)
		logsyserr("<getconnect> could not get TCP socket");

	loginfo("<quakebbs> QuakeBBS v%s Now Running!", QBBS_VERSION);

	for(;;)
	{
		loginfo("<quakebbs> Waiting for TCP connect on %d or UDP connect on %d", config.serv[0].port[0], config.serv[0].port[1]);

    	FD_ZERO(&fdmask);
		FD_SET(udp_sock, &fdmask);
		FD_SET(tcp_sock, &fdmask);

		if(select(1+((tcp_sock > udp_sock) ? tcp_sock : udp_sock), &fdmask, (fd_set *)0, (fd_set *)0, (struct timeval *)0) < 0)
			logerr("<getconnect> select failed");

		if(FD_ISSET(udp_sock, &fdmask))
			udpconnect(udp_sock);

		if(FD_ISSET(tcp_sock, &fdmask))
			tcpconnect(tcp_sock);
	}
}
Example #2
0
int main(int argc, char **argv){

    /*check the augment */
    if(argc < 3){
	fprintf(stderr, "usage : ./a.out <hostname> <port>\n");
	exit(1);
    }

    int ch;
    while((ch = getopt(argc, argv, "dn:")) != EOF) {
	switch(ch){
	    case 'n':
	    		break;
	    case 'd':   options |= DEBUG_MODE;
	    		//printf("option = %02x\n",options);
	    default :
	    		break;
	}
    }
    
    /* open network socket */
    int port = atoi(argv[2]);
    int s;
    s = udpconnect(argv[1],port);

    /* FrameBuffer */
    int fd, screensize;

    fd = open(DEVICE_NAME, O_RDWR);
    if(!fd){
	fprintf(stderr, "cannot open the FrameBuffer '/dev/fb0' \n");
	exit(1);
    }

    struct fb_var_screeninfo vinfo;
    struct fb_fix_screeninfo finfo;

    if(ioctl(fd,FBIOGET_FSCREENINFO, &finfo)){
	fprintf(stderr, "cannot fix info\n");
	exit(1);
    }
    if(ioctl(fd,FBIOGET_VSCREENINFO, &vinfo)){
	fprintf(stderr, "cannot variable info\n");
	exit(1);
    }
    int xres,yres,bpp,line_len;
    xres = vinfo.xres;  yres = vinfo.yres;  bpp = vinfo.bits_per_pixel; 
    line_len = finfo.line_length;
    
    /* Check your machine's resolusion and pixel line length(bytes) */
    printf("%d(pixel)x%d(line), %d(bit per pixel), %d(line length)\n",xres,yres,bpp,line_len);
    screensize = xres * yres * bpp/BIT;

    /*memory I/O */
    char *fbptr;

    fbptr = (char *)mmap(0,screensize,PROT_READ | PROT_WRITE, MAP_SHARED,fd,0);
    if((int)fbptr == -1){
	fprintf(stderr,"cannot get framebuffer\n");
	exit(1);
    }
printf("the frame buffer device was mapped\n");

#ifdef DEBUG_RED_DISP
    unsigned int *num;
    num = (unsigned int  *)malloc(sizeof(unsigned int *));
    *num = RED_DEC;
#endif
    SendPacket(fd,s,bpp,line_len, vinfo,finfo,fbptr);
    
    munmap(fbptr,screensize);
    
    /* close the filediscriptor of socket */
    close(s);
    close(fd);

    return 0;
}