很多站长朋友们都不太清楚socket编程php,今天小编就来给大家整理socket编程php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 Socket编程 php 与 java 通信 问题 2、 php socket编程 发送json字符串接不到 3、 php的socket编程 4、 socket 编程和PHP区别 Socket编程 php 与 java 通信 问题看不懂php
但是我觉得你这个问题可能是因为php发生的EOF不符合java标准。或者根本没有发送EOF标识。
超时应该发生在 ss = in.readLine();这一行代码中的in.read()。
下面是j2se文档资料
int java.io.InputStream.read()
Reads the next byte of data from the input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
A subclass must provide an implementation of this method.
Returns:
the next byte of data, or -1 if the end of the stream is reached.
Throws:
IOException if an I/O error occurs.
这句话非常重要
Returns:
the next byte of data, or -1 if the end of the stream is reached.
当没有发送end of the stream 标识的话,那么程序属于等待状态。 也就是java端一直处于读的状态。
解决这个问题的话。 要么终端手动发送eof.要么终端发送每一次交互的字节长。服务器端根据这个字节长来读取相应长度的字节。
php socket编程 发送json字符串接不到代码如下:
<?
// 设置一些基本的变量
$host =
"192.168.1.99";
$port = 1234;
// 设置超时时间
set_time_limit(0);
//
创建一个Socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could
not create
socket\n");
//绑定Socket到端口
$result = socket_bind($socket,
$host, $port) or die("Could not bind to
socket\n");
// 开始监听链接
$result = socket_listen($socket, 3) or die("Could not set up socket
listener\n");
// accept incoming connections
// 另一个Socket来处理通信
$spawn = socket_accept($socket) or die("Could not accept incoming
connection\n");
// 获得客户端的输入
$input = socket_read($spawn, 1024) or
die("Could not read input\n");
// 清空输入字符串
$input = trim($input);
//处理客户端输入并返回结果
$output = strrev($input) . "\n";
socket_write($spawn,
$output, strlen ($output)) or die("Could not write
output\n");
//
关闭sockets
socket_close($spawn);
socket_close($socket);
?>
php的socket编程socket_bind($socket,'127.0.0.1', 9000);
服务器端绑定IP指的是127.0.0.1,就是服务器本机,监听9000端口
socket 编程和PHP区别这几个其实没什么太大关系,我一层一层给你讲吧
从网络开始:
网络从上到下:应用层、传输层、网络层、链路层、物理层
一般我们正常接触的能上网的软件,都是属于应用层的,这一层负责给用户用的
那传输层是什么呢,就是TCP、UDP这些,这一层负责把用户数据传送到网络层上,或从网络层接收
再然后就是网络层,比如IP协议就是属于网络层的,网络层就是负责把数据包提交到真正的网络上,或者说是提交给链路层,然后链路层再提交给物理层,说白了这个时候数据就会在光纤上面传了。接收的过程和以上刚好就相反喽。
现在可以说socket了,这个词翻译过来就是套接字,其实我也不知道为什么这么翻译,我感觉是因为这个东西是一个“套”,套着一些东西,然后计算机里面一般以“字”为单位,一个字是两个字节,也就是16位。当然也不是说套接字就是16位,我就是想说明这个套接字是一个类似于“单位”一样的东西。
这个“接”最好理解,因为套接字能帮助你连接网络。
套接字编程其实也就是网络编程了,因为网络协议实在是太复杂了,如果从头开始写,估计花上一年时间才能勉强写一个消息包发送出去。所以呢,前人就给你写好了很多东西,这些东西封装起来,就成为了今天的套接字。
通过套接字的这些API呢,也就是函数接口,你就能很简单地连接应用层,传输层还有网络层,也就是说,你只需要调用几个函数,把想发送的数据通过这几个函数封装成数据包,套接字就能把这些数据包提交给操作系统,操作系统呢,就会把这些数据包送到网卡上,然后就发送出去。
最后就是PHP了,PHP和以上就没太大关系了,PHP是一种脚本语言,什么脚本语言呢?其实就是一种解释性的语言,这个解释性的语言又是什么呢,其实就是一些标记语言,通过标记来解释语义,当然也有逻辑的,不过脚本语言是没有C语言等这些编译语言强大的。
PHP还是服务器端语言,用于编写服务器的,服务器你可以暂时理解成网站的后台程序。
嗯,就是这样了,虽然只有10分,但还是忍不住给你答了这么多,原创的哦!
关于socket编程php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于socket编程php socket编程php获取http流量的详细内容...