コード例 #1
0
ファイル: msgclient.c プロジェクト: taysom/tau
int receive_tau (void *msg)
{
	msg_s		*m = msg;
	msgbuf_s	*mb;
	packet_s	*p;
	ki_t		k;
	int		rc;

	mb = emalloc(sizeof(msgbuf_s));
	receive_tcp(mb);
//	deq_dq( &Me.pr_msgq, mb, mb_process);
//	if (!mb) return ENOMSGS;

	p = &mb->mb_packet;

	rc = p->pk_error;
	if (rc) return rc;

	k = 0;
	if (p->pk_passed_key.k_id) {
		k = add_key(p->pk_passed_key);
		if (!k) fatal("Out of keys");
	}
	p->pk_sys.q_passed_key = k;
	memmove(m, &p->pk_sys, sizeof(msg_s));
	free(mb);

	return 0;
}
コード例 #2
0
int main(int argc, char *argv[])
{
	int ret;
	
	if (argc < 4)
	{
		printf("Usage: %s bind_ip bind_port proto\n", argv[0]);
		exit(1);
	}

	if (strcmp(argv[3], "udp") == 0)
	{
		ret = receive_udp(argv[1], argv[2]);
	}
	else if (strcmp(argv[3], "tcp") == 0)
	{
		ret = receive_tcp(argv[1], argv[2]);
	}
	else
	{
		printf("Unknown protocol.\n");
	}

	if (ret == -1)
	{
		printf("Receive message failed.\n");
		exit(1);
	}

	exit(0);
}