创建自己的Socket服务器

在互联网的日常应用或开发中,很多应用都是以Socket为底层建立起来的。比如电子邮件的一些列服务,SMTP服务使用25端口,POP使用110端口,Telnet使用22端口,我们开发PHP用的Apache Web服务用的是80端口等,这些应用服务器都是基于Socket开发的。

使用PHP建立TCP服务器,首先在本地开放一个端口,该端口应该是没有被占用的,刚才提到的标准端口请不要使用,原则上应该使用1000以上的端口号。

然后我们要让PHP在Shell或命令行下执行,也就是CLI方式,请看下面完整的脚本例子:
#!/usr/local/bin/php -q
<?php //在55555端口开始创建Socket $socket = @socket_create_listen(“55555”); if(!$socket){ print “Failed to create socket!n”; exit; } //开始循环处理,等待客户端链接 while(true){ $client = socket_accept($socket); $welcome =”nWelcome to the My Socket Server. nType ‘!exit’ to close this connection, or type ‘!die’ to halt the server.n”; socket_write($client, $welcome); while(true){ $input = trim(socket_read($client, 256)); if($input == ‘!exit’){ break; } if($input == ‘!die’){ socket_close($client); break 2; } $output = strtoupper($input).”n”; socket_write($client, $output); echo “$inpoutn”; } socket_close($client); } socket_close($socket); ?>

通常,使用socket最好使用CLI模式,即在命令行下执行,因为CLI没有脚本超时的限制,在一个新的终端或Win32命令行运行该脚本后,我们可以用以下方式连接该端口的Socket服务器。

如果是本地Windows主机,则需要关闭防火墙等包过滤软件,然后在命令行下输入:
telnet localhost 55555

这样,我们就可以连接到刚才PHP建立的Socket服务器,登陆后,就能收到刚才程序中的欢迎信息,证明Socket服务器已经建立成功了。

Socket开发是很有趣的事,事实上很多应用,如短信接口、支付接口、数据接口还在使用Socket技术开发。

Need a translation service?

Please enter your personal details and we will contact you shortly

Words translated by CCJK

146,096,379

Our Client Satisfaction

Rating for previous quarterr

4.00

Over 95% of our clients recommend our language services to others

Copyright © CCJK Technologies Co., Ltd. 2000-2019. All rights reserved.
TOP