Chinaunix首页 | 论坛 | 博客
  • 博客访问: 964551
  • 博文数量: 335
  • 博客积分: 10287
  • 博客等级: 上将
  • 技术积分: 3300
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-08 15:29
文章分类

全部博文(335)

文章存档

2015年(4)

2014年(15)

2013年(17)

2012年(11)

2011年(12)

2010年(96)

2009年(27)

2008年(34)

2007年(43)

2006年(39)

2005年(37)

我的朋友

分类: C/C++

2010-03-17 18:26:33

Linux下的Socket编程GOOGLE了一些资料,这个基本编译OK,注释详细,函数和结构定义基本能从MSDN上找到说明。本文内容提到的套接字都是Berkely socket.

实用套接字的四个步骤:
1 分配空间和初始化
2 连接
3 传送数据
4 关闭




具体算法:

服务器端: 

C++代码
  1. #include
    #include
       
  2.   
  3. int socket_descriptor;   
  4. socket_descriptor = socket(AF_INET, SOCK_STREAM, 0);   
  5.   
  6. int port = 8000;   
  7. struct sockaddr_in sin;   
  8. sin.sin_family = AF_INET;   
  9. sin.sin_addr.s_addr = INADDR_ANY;   
  10. pin.sin_port = htons(port);   
  11.   
  12. bind(socket_descriptor,(struct socketaddr *)&sin, sizeof(sin) );   
  13.   
  14. listen(socket_descriptor, 1024);   
  15.   
  16. struct sockaddr_in pin;   
  17. int address_size;   
  18. int temp_socket_descriptor;   
  19.   
  20. while(1) {   
  21.   temp_socket_descriptor = accept(socket_descriptor,(struct socketaddr *)&pin,  sizeof(address_size));   
  22.   ......   
  23.   close(temp_socket_descriptor);   
  24. }     

客户端: 

C++代码
  1. #include
    #include
    #include      //直接影响sockaddr_in.sin_addr的填写
      
  2.   
  3. char * host_name = '127.0.0.1';   
  4. struct hostent * server_host_name;   
  5. server_host_name = gethostbyname(host_name);   
  6.   
  7. int port = 8000;   
  8. struct sockaddr_in pin;   
  9. pin.sin_family = AF_INET;   
  10. pin.sin_addr.s_addr = htol(INADDR_ANY);   
  11. pin.sin_addr.s_addr = ((struct in_addr *)(server_host_name->h_addr))->s_addr; 或者 pin.sin_addr = *(struct in_addr *) server_host_name->h_addr;   
  12. pin.sin_port = htons(port);   
  13.   
  14. int socket_descriptor;   
  15. socket_descriptor = socket(AF_INET, SOCK_STREAM, 0);   
  16. connect(socket_descriptor, (void *)&pin, sizeof(pin));   
  17. .......   
  18. close(socket_descriptor);   
阅读(599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~