⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>#include <thread.h>#include <sunrpc.h>typedef struct Arg Arg;struct Arg{	int fd;	char adir[40];	SunSrv *srv;};static voidsunNetListen(void *v){	int fd, lcfd;	char ldir[40];	Arg *a = v;	for(;;){		lcfd = listen(a->adir, ldir);		if(lcfd < 0)			break;		fd = accept(lcfd, ldir);		close(lcfd);		if(fd < 0)			continue;		if(!sunSrvFd(a->srv, fd))			close(fd);	}	free(a);	close(a->fd);}intsunSrvNet(SunSrv *srv, char *addr){	Arg *a;	a = emalloc(sizeof(Arg));	if((a->fd = announce(addr, a->adir)) < 0)		return -1;	a->srv = srv;	proccreate(sunNetListen, a, SunStackSize);	return 0;}intsunSrvAnnounce(SunSrv *srv, char *addr){	if(strstr(addr, "udp!"))		return sunSrvUdp(srv, addr);	else		return sunSrvNet(srv, addr);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -