linux网络通讯日志,linux xinetd服务通信 日志

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

#include

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

$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,例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值