日度归档:2008年9月17日

Zend Studio 6.1.0 发布

一个屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。Zend Studio for Eclipse v6.0是PHP官方的开发工具.它基于Eclipse和PDT,加入了ZendStudio的专用特性,ZF框架,ZendCore Zend Platform.Zend Studio一直是很多PHP开发者的首选工具,它与Java的关系一向甚为亲密,Zend Studio 5一直都是基于Java Swing的,现在好了,Zend Studio直接改投Eclipse了.

下载:Zend Studio for Eclipse 6.1.0
http://downloads.zend.com/studio-eclipse/6.1.0/ZendStudioForEclipse-6_1_0.exe
查看:What’s new
http://www.zend.com/en/products/studio/whats-new
下载:Zend Studio 6.1.0 for Windows
http://downloads.zend.com/studio-eclipse/6.1.0/ZendStudioForEclipse-6_1_0.exe

Linux-C-Socket编程

本文内容提到的套接字都是Berkely socket.

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

具体算法:

服务器端:

 

C++代码
  1. #include <sys/socket.h>
    #include <netinet/in.h>
       
  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 <sys/socket.h>
    #include <netinet/in.h>
    #include <netdb.h>     //直接影响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);