Chinaunix首页 | 论坛 | 博客
  • 博客访问: 670063
  • 博文数量: 150
  • 博客积分: 4070
  • 博客等级: 中校
  • 技术积分: 1795
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-23 21:44
文章分类

全部博文(150)

文章存档

2012年(1)

2011年(123)

2010年(26)

分类: LINUX

2011-07-26 15:41:45

l       头文件

n        

n        

n        

l       地址结构

n         struct sockaddr结构,由于类型兼容性,可以使用struct sockaddr_in来代替

n         struct sockaddr_in的定义

struct sockaddr_in

{

       short int sin_family;

       unsigned short int sin_port;

       struct in_addr sin_addr;

       unsigned char sin_zero[8];

}

n         struct in_addr的定义

struct in_addr

{

       unsigned long s_addr;

}

n         test

l       服务器端函数

n         int socket(int  domain, int  type,  int  protocol)

domain取值一般为AF_INETtype的取值有SOCK_STREAMSOCK_DGRAMSOCK_RAWprotocol的取值一般为0。函数失败返回值为-1

n         int bind(int sockfd,  struct sockaddr *addr, int addrlen)

n         int listen(int sockfd, int backlog)

n         int accept(int sockfd, stuct sockaddr *addr, int &len)

n         int send(int sockfd, const void *msg, int len, int flags)

flags一般取值为0

n         int recv(int sockfd, void *buf, int len, int flags)

flags一般取值为0

l       客户端函数

n         int socket(int  domain, int  type,  int  protocol)

domain取值一般为AF_INETtype的取值有SOCK_STREAMSOCK_DGRAMSOCK_RAWprotocol的取值一般为0。函数失败返回值为-1

n         int connect(int sockfd, struct sockaddr *addr, int len)

l       网络和主机字节转换函数

n         htons():主机字节转换为网络字节顺序 短整型

n         htonl():主机字节转换为网络字节顺序 长整型

n         ntohs():网络字节转换为主机字节顺序 短整型

n         ntohl():网络字节转换为主机字节顺序 长整型

l       IP地址转换

n         将点分十进制表示的IP地址转换为整形: inet_addr(),如inet_addr(“192.168.0.1”)

n         将点分十进制表示的IP地址转换为struct in_addr

int inet_aton(const char *IP, stuct in_addr *addr)

n         struct in_addr的变量转换为点分十进制的IP地址

char *inet_ntoa(struct in_addr addr)

n         test

l       基于UDP的数据发送和接收

n         sendto函数

int sendto(int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int len )

n         recvfrom函数

int recvfrom(int sockfd, void *buf, int len, unsigned int flags, struct sockaddr *from, int *fromlen)

n         Test

l       closeshutdown函数

n         close

close(int sockfd)

n         shutdown

int shutdown(int sockfd, int how)how可以取得值:0表示以后不允许数据接收;1表示不允许发数据;2表示两者都不行。

阅读(1281) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~