Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6284
  • 博文数量: 1
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-15 12:04
文章分类
文章存档

2013年(1)

我的朋友

分类: C/C++

2013-10-23 21:49:24

创建socket描述符:int socket(int domain, int type, int protocal)
    相关头文件:#include
                      #include
                    domain: AF_INET ipv4
                    type: SOCK_STREAM  tcp协议
                   protocal:一般网络编程设置为0
连接connect: int connect(int sockfd, const struct sockaddr *addr, socklen_t addr_len)
   相关头文件:#include
                     #include
                     struct sockaddr结构一般不常用,一般用sockaddr_in替代,
                     struct sockaddr_in在#include 中定义
                     struct sockaddr_in sa;
                     sa.sin_family=AF_INET;
                     sa.sin_port=htons(port); port为int类型  htons在#include
                     inet_aton(addr,&sa.sin_addr); addr为char*类型  
                       该函数需要包含的头文件 #include
                        用来将一个字符串ip地址(127.0.0.1格式)转换为一个 32位的网络序列ip地址
                        如果这个函数成功,返回值为非0值
                   flags =fcntl(fd, F_GETFL)  返回fd描述符的状态标志(如是否阻塞模式)  返回值==-1表示函数执行失败
                   fcntl(fd,F_SETFL, flags|O_NONBLOCK)  所需头文件 #include  
断开socket:close(int fd);  #include
绑定端口:int bind(int sockfd, const struct sockadd *addr, sock_len addrlen)  #include 成功返回0
侦听端口: int listen(int sockfd, int backlog)   #include > > 成功返回0
接受链接 int accept(int sockfd, struct sockadd *addr, sock_len *addrlen)
 #include > > 失败返回-1 否则返回新连接的socket描述符
获取socket对等方ip地址:int  getpeername(int  sockfd,  struct sockaddr *addr, socklen_t *addrlen);
获取socket ip地址:int  getsockname(int  sockfd,  struct sockaddr *addr, socklen_t *addrlen);
设置socket相关属性:int setsockopt(int sockfd, int level, int optname, const void *val, socklen_t oplen); #include > > 失败返回-1 
                             如setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &buffsize, sizeof(buffsize)


阅读(4321) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~