linux xinetd服务通信 日志

linux xinetd

分享
标签: linux  2012-04-10 01:24
linux xinetdclient程序使用cocket连接到server 9999端口,发送信息
xinetd监听到9999端口后启用对应的server程序,server程序根据client发送的信息进行操作后返回结果。

处理过程可以忽略,client发送一段字符串,server接收到后返回一个字符串即可。

哪位能给个简单点的示例代码或者思路?

简单点的SOCKET编程能懂,通过这个xinetd就搞不懂怎么弄了。等高手。xinetd将socket转换成stdin/stdout,因而使得网路服务程式设计大大简化,您可以只用printf及fgets便可完成处理很复杂的网路协定。#include <stdio.h>
#include <string.h>

int main(void)
{
char buf;
printf("print input sth.\n");
do{
if ( fgets(buf,1023,stdin) == NULL ){
printf("get nothing ...\n");
continue;
}
else{
printf("input : %s\n",buf);
fflush(stdout);
memset(buf,'\0',1024);
}
}while(1);
}然后配置xinet.d,加入(从其他的xinet.conf cp的,借用webcache 8080端口,端口定义在/etc/services)service webcache
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /home/test/xinet.test
}然后启动xinetd就可以telnet localhost 8080了。server.php
#!/usr/sbin/php
<?
$in = fgets(STDIN);
$out = $in * 2;
echo $out;
?>
client.php#!/usr/sbin/php
<?php
$fp = fsockopen("localhost", 9999, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)\n";
} else {
$out = 3;
fwrite($fp, $out);

while (!feof($fp)) {
echo fgets($fp, 128);
}

fclose($fp);
}
?>client里的fgets死活读不到值,换到fread也不行。
telnet上去看到server.php是可以正常工作的。
就是client有问题。

因为client可能要在网页程序中实现,所以用了PHP。try
#!/usr/sbin/php
<?
$in = fgets(STDIN);
$out = $in * 2;
echo $out;
fflush(STDOUT); //加入这个
?>
回复 4# 朱厚照 


还是不行,
服务器IP是67.2~15~.24~2.213(防搜索,请自行去掉~)
端口9999
麻烦大家试一下。
telnet是正常的,可以根据输入的数字,返回双倍的值。

实际情况就是要写一个接口,根据不同的参数进行处理,然后给一个返回值。回复 5# SeriousCool 


刚试了一下,可以的回复SeriousCool 


刚试了一下,可以的
朱厚照 发表于 2010-02-03 10:11 http://bbs.chinaunix.net/images/common/back.gif


请问是用自写的client还是telnet?
如果是自己写的代码麻烦帖一下吧,我昨天用C写的client也不行http://www.cxhyq.com/,实在不知道问题在哪了,
是xinetd没把server的输出返回,还是client收到了返回给缓存了请问是用自写的client还是telnet?
如果是自己写的代码麻烦帖一下吧,我昨天用C写的client也不行 ...
SeriousCool 发表于 2010-02-03 10:47 http://bbs.chinaunix.net/images/common/back.gif


我就是telnet你给服务器地址,输入个数,返回就是这个数值的2倍。我没有使用客户端,使用的就是telnet,例

linux下编译问题 库的使用 急!!!!

子我是使用上面那个c的例子。我就是telnet你给服务器地址,输入个数,返回就是这个数值的2倍。我没有使用客户端,使用的就是t ...
朱厚照 发表于 2010-02-05 10:22 http://bbs.chinaunix.net/images/common/back.gif


使用telnet是没有问题的http://www.jozzz.com/,
关键是用自己写的client就不行了,用C和PHP写的都不行,改server测试了,server可以收到数据,但是client收不到返回的数据,C和PHP写的都是这样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值