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

📄 util.c

📁 一个C编写网络广播的程序
💻 C
字号:
/* util.c -- miscelanneous common code *   * This file is part of 'netcast' program, released under BSD License.  * (c) 2001-2002 Stanis砤w Pa秌o <staszek@nutki.com>. All rights reserved.    */#include <arpa/inet.h>#include <sys/types.h>#include <fcntl.h>#include "mdist.h"#include "util.h"int code;/* Create sockaddr_in from address. Now supports only IPs, may    be easily extended (since all addresses are resolved here) */struct sockaddr_in make_addr(char *addr, unsigned short port) {  struct sockaddr_in sin;  sin.sin_family=AF_INET;  if (!addr)     sin.sin_addr.s_addr=htonl(INADDR_ANY);  else {     if (!inet_aton(addr,&sin.sin_addr))       crit("cant resolve address: %s",addr);  }   sin.sin_port=htons(port);  return sin;  }/* Better than using a macro */void set_nonblock(int s) {  if (fcntl(s,F_SETFL,O_NONBLOCK)<0)     crit("fcntl() failed, can't set O_NONBLOCK");}size_t read_all(int fd, void *buf, size_t count) {  size_t t=0,r=0;  while (count>0) {    r=read(fd,buf+t,count);    if (r<=0) return t?t:r;    t+=r;count-=r;     }  return t;}

⌨️ 快捷键说明

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