Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103642526
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: C/C++

2008-04-17 16:57:01

环境: Linux + Apache + Php
程序提供: KingArthur From 21php.com
相关帖子:
总结: ukalpa@sohu.com
-------------------------------------- C 程序---------------------------------------
 

#include
#include
#include
#include
#include
#include
#include
#define SOCK_PATH "/usr/local/apache/cgi-bin/test/nettest"

int main(void)
{
       // 定义变量
int s;
int s2;
int t;
int len;
struct sockaddr_un local;
struct sockaddr_un remote;
char str[100];

// 建立一个socket
if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
{
perror("socket");
exit(1);
}

//确定socket格式
local.sun_family = AF_UNIX;
strcpy(local.sun_path, SOCK_PATH);
unlink(local.sun_path);
len = strlen(local.sun_path) + sizeof(local.sun_family);

       // 绑定
if (bind(s, (struct sockaddr *)&local, len) == -1)
{
perror("bind");
exit(1);
}

       // 监听
if (listen(s, 5) == -1)
{
perror("listen");
exit(1);
}

for (;;)
{
printf("Waiting for a connection...\n");
t = sizeof(remote);
if ((s2 = accept(s, (struct sockaddr *)&remote, &t)) == -1)
{
perror("accept");
exit(1);
}
write(s2, "Content-Type:text/html\n\n");
write(s2, "Hello, World!\n", 14);
printf("Connected.\n");
close(s2);
}
return 0;
}


------------------------------------- PHP 程序 ------------------------------------



// 下面是编译过的程序地址
if (! ($fd = fsockopen("/usr/local/apache/cgi-bin/test/nettest", 0, &$error_number, &$error_des, 60)))
{
printf(" fsockopen error ! ");
   echo "
error_number ---- $error_number";
   echo "
error_des ------- $error_des";
   exit;
}
$str=fgets($fd, 14);
echo "$str";
?>
阅读(300) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~