rresvport.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 38 行
C
38 行
/* posix */#include <sys/types.h>#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <time.h>/* socket extensions */#include <sys/socket.h>#include <netinet/in.h>#include <sys/un.h>intrresvport(int *p){ int fd; short i; struct sockaddr_in in; static int next; fd = socket(PF_INET, SOCK_STREAM, 0); if(fd < 0) return -1; i = 600 + ((getpid()+next++)%(1024-600)); memset(&in, 0, sizeof(in)); in.sin_family = AF_INET; in.sin_port = htons(i);printf("in.sin_port = %d\n", in.sin_port); if(bind(fd, &in, sizeof(in)) < 0){ close(fd); return -1; } if(p) *p = i; return fd;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?