问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

想用PHP做Socket服务器,不知道如何实现同时和多个不同客户端数据交互...

发布网友 发布时间:2022-04-25 03:11

我来回答

2个回答

热心网友 时间:2022-04-07 06:22

因为只有调用了accept客户端才能连上,你如果accept下面接一个循环,那么第二个用户不是说能不能进这个循环,而是连不进……此时只有第一个用户break出了循环,然后程序回头再调用accept,第二个用户才能连上。
用多进程来处理如何?因为accept一个客户端以后,应该是马上准备accept下一个客户端才对,而不是处理完现在这个客户端才accept下一个客户端。
socket_accept以后,直接调用 pcntl_fork(),此时进程会*为两个,其中一个的pnctl_fork返回值是0,另一个不是0。不是0的那个直接继续调用socket_accept即可,是0的那个处理客户端请求。
pnctl_fork不知道在windows下能不能用。
不过返回不是0的那个进程并不是这样就完事了,还要调用pcntl_wait防止子进程卡在那边没有完全结束。你可以在主进程里时不时就调用这个,配上WNOHANG作为option参数防止没有子进程需要wait的时候卡在那边。

这都是linux下常用的处理手段。说实话本来我想让你用多线程的,不过看了一圈不知道php里怎么用线程,倒是找到了用进程的方式,所以就

热心网友 时间:2022-04-07 07:40

你知道有session这个东西吗追问依你之见这里该如何用session?

想用PHP做Socket服务器,不知道如何实现同时和多个不同客户端数据交互...

用多进程来处理如何?因为accept一个客户端以后,应该是马上准备accept下一个客户端才对,而不是处理完现在这个客户端才accept下一个客户端。socket_accept以后,直接调用 pcntl_fork(),此时进程会分裂为两个,其中一个的pnctl_fork返回值是0,另一个不是0。不是0的那个直接继续调用socket_accept即可...

php socket同时给不同用用户发消息怎么做

socket系列函数大多有一个公用参数,它代表与单个用户的连接。你可以通过 socket_write($sock,$content)向用户发送内容,socket_read($sock)接受用户发来的内容。

php的sockets是做什么用的

你使用这个socket数据结构去开始一个客户端和服务器之间的会话。这个服务器是一直在监听准备产生一个新的会话。当一个客户端连接服务器,它就打开服务器正在进行监听的一个端口进行会话。这时,服务器端接受客户端的连接请求,那么就进行一次循环。现在这个客户端就能够发送信息到服务器,服务器也能发送信息给客户端。产生...

php做的服务端 socket 该怎么传递数组传递数组

returntargets;}char转byte应该可以强转吧然后用System.arraycopy()方法把int转换的byte和强转的byte写进你的data里面然后通过socket的write()方法写过去服务器就收到了

php可不可以socket通信长连接,不断开,然后实现多次通讯?

理论上是可以的,使用PHP提供的socket相关API,主要问题是脚本执行时间。PHP运行模式分为非命令行模式及命令行模式。非命令行模式一般是用于B/S交互,max_execution_time默认为非零,也就是限制脚本执行时间。即使你设置max_execution_time为0也面临用户浏览器请求的超时问题。命令行模式下set_limit_time...

使用php开发服务端,c++做客户端,用socket进行通信,具体如何操作,谢谢...

这种东西做过,不过源代码是不可能了:P。双方通过Socket通信,需要了解每种语言操作Socket的方式。Java只写ServerSocket的代码,负责接受数据;而C++同样只是向Java所在服务器的指定Socket发数据就可以了.这里有一个需要注意的,数据格式 的问题.这个给你一个建议,不要使用Java和C++的方法来读写数据,而把...

php为什么不适合socket

作为一名非底层程序员,要想深入了解socket的内部实现机制是很困难的,我们只需明白socket是一套操作系统封装好的实现进程通信的函数,会创建和调用就够了。PHP的语言特性和自身定位决定了它只适合做socket客户端,而不适合做socket服务器端。因为socket主要面向底层和网络服务开发,一般服务器端都是用 C 或...

如何在一台服务器上部署多个node.js站点

用nginx、apache做前级分发,node服务启动在不同的端口(tcp端口 or Unix socket),很方便,nginx占80端口即可,可以方便接入各种不同的web服务(php、java)node内建服务来实现分发,原理和上面类似,只不过前级有node来占80端口。http请求产生的request对象会带有host信息,根据自己的需求,对host做一个...

php实现实时聊天?

编写客户端代码:编写客户端代码来与后端进行通信,获取聊天记录和推送消息等。部署和测试:将代码部署到服务器上,并进行测试和调试。php怎么才能实现即时通讯?如下:php实现实时通信一般有两种方式:socket或comet。socket是比较好的解决方案,问题在于不是所有的浏览器都兼容,服务器端实现起来也稍微有点...

nodejsfs模块(nodejsfs模块)

需要分别实现服务端和客户端的逻辑: 先创建一个服务端的node.js脚本index_server.js varapp=require('http').createServer(handler)//创建服务器app ,io=require('socket.io').listen(app)//引用socket.io模块监听app ,fs=require('fs')//引用文件处理模块 app.listen(80);//指定app监听的端口,第二个参数...

PHP可以本地提交到服务器 个人用服务器 PHP服务器iso PHP服务器 PHP服务器环境 服务器端口 php web服务器 php的web服务器有哪些 什么是服务器
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
困学书城作者简介 如何修改Word中的标点符号? 学习了“卖火柴的小女孩”这篇课文。改错,这个双引号改为书名号... 语文病句什么时候用书名号 新飞冷柜那边是冷冻箱哪边是冷藏箱 word文档怎么翻转书名号书名号怎么倒过来 新飞冷柜如何 华为平板怎么调清晰度 专利权评价报告对专利诉讼的实质性影响 汽车加完机油多久打火 只有该结婚的爱情,哪有该结婚的年龄 word文档中需要打连字符吗 java的服务器端socket的accept()方法返回值为什么是客户端的socket类型 360手机F4上面没有计步器吗 怎么看待“没有该结婚的年龄,只有该结婚的感情”这句话? word里面怎么打连在一起的破折号 打连厢的表演 为什么说只有应该结婚的感情没有应该结婚的年龄? socket编程中、accept()函数的第二个参数、如何获取? 没有该结婚的年龄,只有该结婚的感情。你同意这句话吗? 怎么用五笔打连 塔罗牌可以测前世吗 怎么在键盘上打连字符,三角形,正方形……… 没有该结婚的年纪,只有该结婚的爱情!从一到十的结婚祝福成语有哪些? 没有该结婚的年龄只有该结婚的爱情,对此你如何看? 五笔怎么打连 本人一九九零年四月初八占卜前世姻缘,未来爱情,命运,财运? 如何看待只有应该结婚的感情没有应该结婚的年龄? 什么是打连?女人打连是什么意思? 为什么说从来没有该结婚的年纪,只有该结婚的爱情? 打连我电话是否对方要先登录连我才能听到电话声 讲讲英格兰的欧文 打连厢歌词 viviv9手机4G运行+64机身内存的价格是多少 Java ServerSocket accept运行一段时间不再接受新的连接了,这是为什么? 怎么能打掉招架?打什么书?我想打连和必.打成功了.我的100多分全给你 360f4的最新版系统是什么 玩七鬼牌可以打连对吗? 客户端发给socket一个请求,服务器端使用php处理完成后,怎样在php里断开这个socket连接 口袋妖怪金手指代码 钉钉打卡什么叫打连卡 网络编程中 SOCKET Accept=SOCKET_ERROR 编译的时候报错 不同性格的动漫人物在画人设图时该采用什么样的站姿?(求具体建议) 请问双截龙格斗高手,用键盘打连击容易吗?想成为像DDF队员那样的连技高手需要买摇杆吗?我用键盘打连技很 用vc(socket)的accept是其地址参数要初始化吗? 电脑蓝屏,出现STOP:0X00000019怎么办?(重启会好一会) 下午几点有去打连方向的火车,最好能早点? serversocket.accept()函数返回什么类型值? ⅤiVi是什么品牌的手机 打字机连台式电脑能打连联想笔记本电脑一直打白纸