网络编程函数
2014-05-13 15:13
169 查看
#include<netinet/in.h>
uint16_t htons(uint16_t host16bitvalue);
uint32_t htonl(uint32_t host32bitvalue); 均返回:网络字节序值
uint16_t ntohs(uint16_t net16bitvalue);
uint32_t nohl(uint32_t net32bitvalue); 均返回:主机字节序值
字节操纵函数
#include<string.h>
void bzero(void * dest,size_t nbytes);
void bcopy(const void * src,void *dest,size_t nbytes);
int bcmp(const void * ptr1,const void *ptr2,size_t nbytes); 返回:0-相等,非0-不相等
ANSI C函数:
#include<string.h>
void * memset(void * dest,int c,size_t len);
void * memcpy(void *dest,const void *src,size_t nbytes);
int memcmp(const void *ptr1,const void *ptr2,size_t nbytes); 返回:0-相同,>0或<0-不相同
ASCII与网络字节序的二进制值(此值存在于套接口地址结构中)间转换地址:
1.inet_aton、inet_addr和inet_ntoa在点分十进制数串与它的32位网络字节序二进制值间转换IPV4地址,
2.inet_pton,inet_ntop对IPV4和IPV6地址都能处理,
#include<arpa/inet.h>
int inet_aton(const char * strptr,struct in_addr *addrptr); 返回1-串有效,0-串有错
in_addr_t inet_addr(const char * strptr);
返回:若成功,返回32为二进制的网络字节序地址,若有错,则返回INADDR_NONE
char * inet_ntoa(struct in_addr inaddr);
返回:指向点分十进制数串的指针
inet_pton和inet_ntop对IPV4和IPV6地址都能处理,字母p和n分别代表presentation和numeric。地址的表达(presentation)格式通常是ASCII串。数值(numeric)格式则是存在于套接口地址结构中的二进制。
#include<arpa/inet.h>
int inet_pton(int family,const char *strptr,void *addrptr);
返回:1-成功,0-输入不是有效的表达式,-1-错误
const char * inet_ntop(int family,const void *addrptr,char *strptr,size_t len);
返回:指向结果的指针-成功,NULL-出错
测试是否为套接口描述字:
#include<sys/stat.h>
int isfdtype(int fd,int fdtype); 返回:1-是指定类型,0-不是指定类型,-1-出错
#include<sys/socket.h>
int socket(int family,int type,int protocol);返回:非负描述字-成功,-1-出错
int connect(int sockfd,const struct sockaddr *servaddr,socklen_t addrlen); 返回:0-成功,-1-出错
int bind(int sockfd,const struct sockaddr *myaddr,socklen_t addrlen); 返回:0-成功,-1-出错
int listen(int sockfd,int backlog); 返回:0-成功,-1-出错
int accept(int sockfd,struct sockaddr *cliaddr,socklen_t * addrlen); 返回:非负描述字-0k,-1-出错
并发服务器:
#include<unistd.h>
pid_t fork(void); 返回:在子进程中为0,在父进程中位子进程ID,-1-出错
int execl(const char *pathname,const char *arg0,...);
int execv(const char *pathname,char *const argv[]);
int execle(const char *pathname,const char *argv0,...);
int execve(const char *pathname,char *const argv[],char *const envp[]);
int execlp(const char *filename,const char *arg0,...);
int execvp(const char *filename,char *const argv[]);
int close(int sockfd);
与套接口关联的本地协议地址(getsockname),或返回与套接口关联的远程协议地址(getpeername)
#include<sys/socket.h>
int getsockname(int sockfd,struct sockaddr* localaddr,socklen_t *addrlen);
int getpeername(int sockfd,struct sockaddr * peeraddr,socklen_t *addrlen);
uint16_t htons(uint16_t host16bitvalue);
uint32_t htonl(uint32_t host32bitvalue); 均返回:网络字节序值
uint16_t ntohs(uint16_t net16bitvalue);
uint32_t nohl(uint32_t net32bitvalue); 均返回:主机字节序值
字节操纵函数
#include<string.h>
void bzero(void * dest,size_t nbytes);
void bcopy(const void * src,void *dest,size_t nbytes);
int bcmp(const void * ptr1,const void *ptr2,size_t nbytes); 返回:0-相等,非0-不相等
ANSI C函数:
#include<string.h>
void * memset(void * dest,int c,size_t len);
void * memcpy(void *dest,const void *src,size_t nbytes);
int memcmp(const void *ptr1,const void *ptr2,size_t nbytes); 返回:0-相同,>0或<0-不相同
ASCII与网络字节序的二进制值(此值存在于套接口地址结构中)间转换地址:
1.inet_aton、inet_addr和inet_ntoa在点分十进制数串与它的32位网络字节序二进制值间转换IPV4地址,
2.inet_pton,inet_ntop对IPV4和IPV6地址都能处理,
#include<arpa/inet.h>
int inet_aton(const char * strptr,struct in_addr *addrptr); 返回1-串有效,0-串有错
in_addr_t inet_addr(const char * strptr);
返回:若成功,返回32为二进制的网络字节序地址,若有错,则返回INADDR_NONE
char * inet_ntoa(struct in_addr inaddr);
返回:指向点分十进制数串的指针
inet_pton和inet_ntop对IPV4和IPV6地址都能处理,字母p和n分别代表presentation和numeric。地址的表达(presentation)格式通常是ASCII串。数值(numeric)格式则是存在于套接口地址结构中的二进制。
#include<arpa/inet.h>
int inet_pton(int family,const char *strptr,void *addrptr);
返回:1-成功,0-输入不是有效的表达式,-1-错误
const char * inet_ntop(int family,const void *addrptr,char *strptr,size_t len);
返回:指向结果的指针-成功,NULL-出错
测试是否为套接口描述字:
#include<sys/stat.h>
int isfdtype(int fd,int fdtype); 返回:1-是指定类型,0-不是指定类型,-1-出错
#include<sys/socket.h>
int socket(int family,int type,int protocol);返回:非负描述字-成功,-1-出错
int connect(int sockfd,const struct sockaddr *servaddr,socklen_t addrlen); 返回:0-成功,-1-出错
int bind(int sockfd,const struct sockaddr *myaddr,socklen_t addrlen); 返回:0-成功,-1-出错
int listen(int sockfd,int backlog); 返回:0-成功,-1-出错
int accept(int sockfd,struct sockaddr *cliaddr,socklen_t * addrlen); 返回:非负描述字-0k,-1-出错
并发服务器:
#include<unistd.h>
pid_t fork(void); 返回:在子进程中为0,在父进程中位子进程ID,-1-出错
int execl(const char *pathname,const char *arg0,...);
int execv(const char *pathname,char *const argv[]);
int execle(const char *pathname,const char *argv0,...);
int execve(const char *pathname,char *const argv[],char *const envp[]);
int execlp(const char *filename,const char *arg0,...);
int execvp(const char *filename,char *const argv[]);
int close(int sockfd);
与套接口关联的本地协议地址(getsockname),或返回与套接口关联的远程协议地址(getpeername)
#include<sys/socket.h>
int getsockname(int sockfd,struct sockaddr* localaddr,socklen_t *addrlen);
int getpeername(int sockfd,struct sockaddr * peeraddr,socklen_t *addrlen);
相关文章推荐
- ASP.NET网络编程中常用到的27个函数集
- [Linux网络编程]域名转换函数族--使用gethostbyname函数1
- linux网络编程-----几种服务器模型及io多路复用函数
- 网络编程之并发-I/O复用select函数,Linux文件函数
- UNIX 网络编程知识,函数积累
- ASP.NET网络编程中常用到的27个函数集
- ASP.NET网络编程中常用到的27个函数集
- 网络编程常见函数解析
- 网络编程的几个函数
- 网络编程socket之accept函数
- Linux网络编程之bind函数
- 【整理】网络编程socket 函数整理
- ASP.NET网络编程中经常用到的27个函数集(1)
- Linux编程常用的函数(八) 网络编程
- C++网络编程的几个函数
- c++网络编程常用的函数
- ASP.NET网络编程中常用到的27个函数集
- Linux网络编程--recv函数返回值详解
- linux网络编程之System V 消息队列(一):消息队列内核结构和msgget、msgctl 函数
- Linux 网络编程之ioctl函数