Example #1
0
int
main(int argc, char **argv)
{
	int					sockfd;
	const int			on = 1;
	socklen_t			salen;
	struct sockaddr		*sa;

	if (argc == 1) {
		sockfd = udp_client(SAP_NAME, SAP_PORT, &sa, &salen);
	} else if (argc == 4) {
		sockfd = udp_client(argv[1], argv[2], &sa, &salen);
	} else {
		fprintf(stderr, "usage: mysdr <mcast-addr> <port#> <interface-name>\n");
		exit(1);
	}

	if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) {
		perror("setsockopt error");
		exit(1);
	}
	if (bind(sockfd, sa, salen) < 0) {
		perror("bind error");
		exit(1);
	}

	if (mcast_join(sockfd, sa, salen, (argc == 4) ? argv[3] : NULL, 0) < 0) {
		perror("mcast_join error");
		exit(1);
	}

	loop(sockfd, salen);	/* receive and print */

	exit(0);
}
Example #2
0
int main(int argc,char *argv[])
{
    if(argc != 5)
    {
		printf("Incorrect format\n");
        printf("\n Usage: %s <listenportno> <ip of server> <connectportno> <protocol>\n",argv[0]);
        return 1;
    } 
    char *listenportno = argv[1];
    char *connectportno = argv[3];
    char *ip = argv[2];
    if(strcmp(argv[3],"udp")==0)
		isudpset = 1;
    else
	 	isudpset = 0;
    pid_t pid;
    pid = fork();
    if(pid == 0)
    {
		if(isudpset)
			udp_server(listenportno);
		else
    	    tcp_server(listenportno);
    }
    else if(pid > 0)
    {        
		if(isudpset)
			udp_client(ip,connectportno);
		else
        	tcp_client(ip,connectportno);
    }
    return 0;
}
Example #3
0
int main(int argc, const char *argv[])
{
    fb_info fb_v;
    fb_info * temp;
	pthread_t id;
	int ret;
    Dot mid;
    mid.x = 512;
    mid.y = 275;
    char ip_address[20];
    int mode;
    create_fb(&fb_v);
    system("clear");
    mode = startup(fb_v, ip_address);
    draw_pic(fb_v,OFFSET - 20,0,940,720,gImage_chessboard);
    draw_pic(fb_v,OFFSET - 120,200,100,100,gImage_chessboard);
    draw_pic(fb_v,OFFSET - 120,500,100,100,gImage_chessboard);
    draw_piece(fb_v,OFFSET - 70,250,40,0x00000000);
    draw_piece(fb_v,OFFSET - 70,550,40,0xffffffff);
    print_board(fb_v,23,30,30,OFFSET,15,0x00000000);
    temp = &fb_v;
    if((ret = pthread_create(&id, NULL, (void *) mouse_test,(void *)temp)) != 0)
    {
        printf("Create pthread error!\n");
        exit(1);
    }
    if(mode == 1)
        udp_server(fb_v);
    else
        udp_client(fb_v, ip_address);
    return 0;
}
Example #4
0
int main( int argc, char **argv )
{
	struct sockaddr_in peer;
	SOCKET s;
	int rc = 0;
	socklen_t len;
	char buf[ 120 ];

	INIT();
	s = udp_client( argv[ 1 ], argv[ 2 ], &peer );
	while ( fgets( buf, sizeof( buf ), stdin ) != NULL )
	{
		rc = sendto( s, buf, strlen( buf ), 0,
			( struct sockaddr * )&peer, sizeof( peer ) );
		if ( rc < 0 )
			error( 1, errno, "sendto failed" );
		len = sizeof( peer );
		rc = recvfrom( s, buf, sizeof( buf ) - 1, 0,
			( struct sockaddr * )&peer, &len );
		if ( rc < 0 )
			error( 1, errno, "recvfrom failed" );
		buf[ rc ] = '\0';
		fputs( buf, stdout );
	}
	EXIT( 0 );
}
Example #5
0
int
Udp_client(const char *host, const char *serv, void **vptr, socklen_t *lenp)
{
	int		n;

	if ( (n = udp_client(host, serv, vptr, lenp)) < 0)
       	err_quit("udp_client error for %s, %s", host, serv);
	return(n);
}
int main(int argc,char *argv[])
{
 
  int sendfd,recvfd;
  const int on=1;
  socklen_t salen;
  struct sockaddr *sasend,*sarecv;
  int retval;

   
  fprintf(stderr,"\nMULTICAST DATA MOVER : \n%s %s %s %s %s %s\n",
				 argv[0],argv[1],argv[2],argv[3],argv[4],argv[5]);   

  glb.sourcefd = atoi(argv[3]);
  glb.filesize = atoi(argv[4]);
  strcpy(glb.IBP_cap,argv[5]);  
   
  strcpy(group,argv[1]);

  sendfd=udp_client(argv[1],argv[2],(void **)&sasend,&salen);

  setsockopt(sendfd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on));

  sarecv=malloc(salen);
  memcpy(sarecv,sasend,salen);
  bind(sendfd,sasend,salen);

  mcast_join(sendfd,sasend,salen,NULL,0);
  printf("-->in here 1 \n");  
  retval=ReceiveData(sendfd,salen);
  if(retval < 0)
  {
    printf("abrubtly ended due to error \n");
    mcast_leave(sendfd,sasend,salen);
    exit(3);  
  }
  mcast_leave(sendfd,sasend,salen);
  printf("recieved all data \n");
  exit(0);
}
Example #7
0
int main(int argc, char *argv[])
{
	int	sockfd, n;
	char	recvline[MAXLINE + 1]; /* plus 1 for terminator */
	socklen_t salen;
	struct	sockaddr *sa;

	if (argc != 3)
		err_quit("usage: daytimeudpcli1 <hostname/IPaddress>"
			 " <service/port#>");

	sockfd = udp_client(argv[1], argv[2], (SA **)&sa, &salen);
	printf("sending to %s\n", sock_ntop_host(sa, salen));
	if (sendto(sockfd, " ", 1, 0, sa, salen) < 0)
		err_sys("sendto error");
	if ((n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL)) < 0)
		err_sys("recvfrom error");
	recvline[n] = 0;
	fputs(recvline, stdout);

	exit(0);
}
Example #8
0
/** Client test program */
int client(unsigned int port)
{
	int sock;
	uint32_t tmp;
	
	/* get test value to network order */
	tmp = htonl(test_value);

	/* create our socket */
	if((sock = udp_client("127.0.0.1", port)) < 0)
		return_val_flail(TEST_FAIL, ";;rp udp client returned error");

	/* send our packet */
	if(send(sock, (void *)(&tmp), sizeof(uint32_t), 0) != sizeof(uint32_t))
		return_val_flail(TEST_FAIL, "u;;rp could not send packet from client to server");

	/* close down our socket */
	if(close(sock))
		return_val_flail(TEST_FAIL, "u;;rp could not close client socket");

	/* everything worked */
	return TEST_PASS;
}
Example #9
0
int main(int argc, char *argv[]) {
  char proto, mode;
  unsigned int addr;
  unsigned short port;

  //read arguments (options)
  readargs(argc, argv, &proto, &mode, &addr, &port, "10001");

  if(mode == 's') {
    if(proto == 'u') {
      udp_server(port);
    } else {
      tcp_server(port);
    }
  } else {
    if(proto == 'u') {
      udp_client(addr, port, 0);
    } else {
      tcp_client(addr, port, 0);
    }
  }

  return 0;
}
Example #10
0
int
Udp_client(const char *host, const char *serv, void **saptr, socklen_t *lenptr)
{
    return(udp_client(host, serv, saptr, lenptr));
}
Example #11
0
File: cute.c Project: psvz/cute
int
main(int argc, char **argv)
{
	int	sockfd, fd = 5;	//random fd > stderr
const	int	on = 1, op = RCVBUF;
struct	sockaddr	*sa;
	socklen_t	salen;
struct	sigaction	sig;
struct	tm	tm;
	char	fname[64] = {0};
	char	*buf;
	time_t	t;
	ssize_t	n, i, cnt;
	pthread_t	pid;

	if (argc < 4) {
		fputs("\nUsage: cute <MCast GRP> <UDP port> <dump location> [if name]\n", stderr);
		exit(1);
	}
	//file is created and grown in current working folder
	printf("\nUse SIGHUP to start over or SIGTERM to slice the record to %s\n", argv[3]);

	sockfd = udp_client(argv[1], argv[2], &sa, &salen); //creates socket and fills sockaddr
	if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) {
		perror("setsockopt reuseaddr");
		exit(1);
	}
	if (setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &op, sizeof(op)) < 0) {
		perror("setsockopt rcvbuf");
		exit(1);
	}
	if (bind(sockfd, sa, salen) < 0) {
		perror("bind");
		exit(1);
	}
	bzero(&sig, sizeof(sig));
	sig.sa_handler = slicenow;
	if (sigaction(SIGTERM, &sig, NULL) < 0) {
		perror("sigaction term");
		exit(1);
	}
	if (sigaction(SIGHUP, &sig, NULL) < 0) {
                perror("sigaction hup");
                exit(1);
        }
	if (sigaction(SIGINT, &sig, NULL) < 0) {
		perror("sigaction int");
		exit(1);
	}
	if (mcast_join(sockfd, sa, salen, (argc == 5) ? argv[4] : NULL, 0) < 0) {
		perror("mcast_join");
		//exit(1);
	}
	if ( (buf = malloc(RCVBUF / 2)) == NULL) {	// buffer for recv()
		fputs("malloc error", stderr);
		exit(1);
	}
	printf("Niceness set: %d\n\n", nice(LIFT));
	for (; ;) {
		if (sflag != 0) {
			if (sflag == SIGINT) {
				//unlink(fname);
				puts("");
				exit(0);
			}
			time(&t);
			if (gmtime_r(&t, &tm) == NULL) {
				fputs("gmtime_r error", stderr);
				exit(1);
			}
			strcpy(filename, fname);
			snprintf(fname, sizeof(fname), "%04d%02d%02d%02d%02d%02d.ts",\
				tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour,\
				tm.tm_min, tm.tm_sec);
			puts(fname);
			close(fd);	//first time error is ignored
			if ( (fd = creat(fname, 0644)) < 0) {
				perror("create");
				exit(1);
			}
			if (sflag == SIGHUP) unlink(filename);
			else if (sflag == SIGTERM)
				if ( (errno = pthread_create(&pid, NULL, file_move, argv[3])) != 0)
					perror("pthread_create");
			sflag = 0;
		}
		//MSG_WAITALL looks irrelevant for SOCK_DGRAM
		if ( (n = recv(sockfd, buf, RCVBUF / 2, MSG_WAITALL)) < 0) {
			if (errno == EINTR) continue;
			else {
				perror("recv()");
				exit(1);
			}
		}
		if (n > 0) {
			i = 0;
			while (i < n) if ( (cnt = write(fd, buf + i, n - i)) < 0) {
				if (errno == EINTR) continue;
				else {
					perror("write()");
					exit(1);
				}
			} else i += cnt;
		} else fputs("paradox: recv() returned 0", stderr);
	}
	return 0;
}
Example #12
0
int nfs_mount(const char *pathname, const char *hostname,
	      uint32_t server, const char *rem_path, const char *path,
	      struct nfs_mount_data *data)
{
	struct client *clnt = NULL;
	struct sockaddr_in addr;
	char mounted = 0;
	int sock = -1;
	int ret = 0;
	int mountflags;

	if (get_ports(server, data) != 0)
		goto bail;

	dump_params(server, rem_path, data);

	if (data->flags & NFS_MOUNT_TCP)
		clnt = tcp_client(server, mount_port, CLI_RESVPORT);
	else
		clnt = udp_client(server, mount_port, CLI_RESVPORT);

	if (clnt == NULL)
		goto bail;

	if (data->flags & NFS_MOUNT_VER3)
		ret = mount_v3(rem_path, data, clnt);
	else
		ret = mount_v2(rem_path, data, clnt);

	if (ret == -1)
		goto bail;
	mounted = 1;

	if (data->flags & NFS_MOUNT_TCP)
		sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
	else
		sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);

	if (sock == -1) {
		perror("socket");
		goto bail;
	}

	if (bindresvport(sock, 0) == -1) {
		perror("bindresvport");
		goto bail;
	}

	addr.sin_family = AF_INET;
	addr.sin_addr.s_addr = server;
	addr.sin_port = htons(nfs_port);
	memcpy(&data->addr, &addr, sizeof(data->addr));

	strncpy(data->hostname, hostname, sizeof(data->hostname));

	data->fd = sock;

	mountflags = (data->flags & NFS_MOUNT_KLIBC_RONLY) ? MS_RDONLY : 0;
	data->flags = data->flags & NFS_MOUNT_FLAGMASK;
	ret = mount(pathname, path, "nfs", mountflags, data);

	if (ret == -1) {
		if (errno == ENODEV) {
			fprintf(stderr, "mount: the kernel lacks NFS v%d "
				"support\n",
				(data->flags & NFS_MOUNT_VER3) ? 3 : 2);
		} else {
			perror("mount");
		}
		goto bail;
	}

	dprintf("Mounted %s on %s\n", pathname, path);

	goto done;

bail:
	if (mounted) {
		if (data->flags & NFS_MOUNT_VER3)
			umount_v3(path, clnt);
		else
			umount_v2(path, clnt);
	}

	ret = -1;

done:
	if (clnt)
		client_free(clnt);

	if (sock != -1)
		close(sock);

	return ret;
}