socket_bind.c

来自「It support IPv4 and IPv6 unicast and mul」· C语言 代码 · 共 34 行

C
34
字号
#include <sys/types.h>#include <sys/param.h>#include <sys/socket.h>#include <netinet/in.h>#include "byte.h"#include "socket.h"int socket_bind4(int s,const char ip[4],uint16 port){  struct sockaddr_in sa;  byte_zero(&sa,sizeof sa);  sa.sin_family = AF_INET;  uint16_pack_big((char *) &sa.sin_port,port);  byte_copy((char *) &sa.sin_addr,4,ip);  return bind(s,(struct sockaddr *) &sa,sizeof sa);}int socket_bind4_reuse(int s,const char ip[4],uint16 port){  int opt = 1;  setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof opt);  return socket_bind4(s,ip,port);}void socket_tryreservein(int s,int size){  while (size >= 1024) {    if (setsockopt(s,SOL_SOCKET,SO_RCVBUF,&size,sizeof size) == 0) return;    size -= (size >> 5);  }}

⌨️ 快捷键说明

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