很多站长朋友们都不太清楚php+链接通讯,今天小编就来给大家整理php+链接通讯,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 VB.NET与PHP通讯问题 2、 C#应用如何与PHP服务器通信? 3、 php可不可以socket通信长连接,不断开,然后实现多次通讯? 4、 怎样使用php实现tcp/udp通讯 5、 php客户端与服务器端怎么通讯啊? 6、 php怎么才能实现即时通讯? VB.NET与PHP通讯问题与语言没有关系, 你需要考虑的是两个系统直接如何通讯. 选一种通讯协议(一般用http协议), 设计好数据结构, 可以是xml或json. 假设选用http协议传输json数据. 你需要做以下工作:
使用php开发一个http接口, 根据参数查询数据库, 把结果转换为json格式后返回. 这是目前最流行的接口格式, 基本上所有语言都可以开发和请求这样的接口, 很多开放平台都是这样设计接口的, 例如微信的这个接口,你可以参考一下 网页链接
使用VB.NET请求这个接口, 获取返回的数据(json格式, 一个特殊的字符串), 使用VB.NET对json数据进行解码
所以,要完成这个工作,你需要知道http接口开发和请求, 以及json编码和解码的相关知识和技能, 祝你好运
C#应用如何与PHP服务器通信?我不知道你具体要做到什么程度,但是如果是那种用C#开发一个客户端,然后用php作为服务端的语言这样的情况的话,倒是很好解决的。
你可以在服务器端用php写一些网页,然后用C#去请求这些网页,然后获取这些网页上输出的结果,再根据这些结果来判断C#端要如何处理。
嗯……我不知道这么说你能懂不能,这个过程很像你通过浏览器去访问网页一样。
通过C#去请求服务器上的php链接,可以通过get的请求方式来传递一些参数,然后php页面返回json值给C#端,然后C#端对传回的json值进行处理,这样就完成交互了。
php可不可以socket通信长连接,不断开,然后实现多次通讯?理论上是可以的,使用PHP提供的socket相关API,主要问题是脚本执行时间。
PHP运行模式分为非命令行模式及命令行模式。
非命令行模式一般是用于B/S交互,max_execution_time默认为非零,也就是限制脚本执行时间。即使你设置max_execution_time为0也面临用户浏览器请求的超时问题。
命令行模式下set_limit_time默认为0,做为本地脚本执行,所以没有上述的问题。
PHP SOCKET相关文档:
怎样使用php实现tcp/udp通讯1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1
2.server.php后台跑起来的时候nohup php server.php > /var/tmp/a.log 2>1
一: udp 方式
1) server.php
<?php //error_reporting( E_ALL ); set_time_limit( 0 ); ob_implicit_flush(); $socket = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP ); if ( $socket === false ) { echo "socket_create() failed:reason:" . socket_strerror( socket_last_error() ) . "\n"; } $ok = socket_bind( $socket, '202.85.218.133', 11109 ); if ( $ok === false ) { echo "socket_bind() failed:reason:" . socket_strerror( socket_last_error( $socket ) ); } while ( true ) { $from = ""; $port = 0; socket_recvfrom( $socket, $buf,1024, 0, $from, $port ); echo $buf; usleep( 1000 ); } ?>
2) client.php
<?php $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); $msg = 'hello'; $len = strlen($msg); socket_sendto($sock, $msg, $len, 0, '202.85.218.133', 11109); socket_close($sock); ?>
二: TCP 方式
1)server.php
<?php //error_reporting( E_ALL ); set_time_limit( 0 ); ob_implicit_flush(); $socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP ); socket_bind( $socket, '192.168.2.143', 11109 ); socket_listen($socket); $acpt=socket_accept($socket); echo "Acpt!\n"; while ( $acpt ) { $words=fgets(STDIN); socket_write($acpt,$words); $hear=socket_read($acpt,1024); echo $hear; if("bye\r\n"==$hear){ socket_shutdown($acpt); break; } usleep( 1000 ); } socket_close($socket) ?>
2) client.php
<?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $con=socket_connect($socket,'192.168.2.143',11109); if(!$con){socket_close($socket);exit;} echo "Link\n"; while($con){ $hear=socket_read($socket,1024); echo $hear; $words=fgets(STDIN); socket_write($socket,$words); if($words=="bye\r\n"){break;} } socket_shutdown($socket); socket_close($sock); ?>
php客户端与服务器端怎么通讯啊?要实时通讯,必须建立socket。
或者客户端每隔一段使用ajax主动向服务器获取指令
php怎么才能实现即时通讯?php实现实时通信一般有两种方式:socket或comet。
socket是比较好的解决方案,问题在于不是所有的浏览器都兼容,服务器端实现起来也稍微有点麻烦。
comet(基于HTTP长连接的"服务器推")实现起来更加方便,而且兼容所有的浏览器。
comet也有好几种实现方式,如iframe, http long request等。
关于php+链接通讯的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php+链接通讯 php通信协议的详细内容...