php socket通信问题??
我的问题就是遇到下面这种情况的时候产生的,求解救啊...
a,b聊天,是a 与 b聊天是吧??
socket通信,是 socket_server.php 与 socket_client.php 进行通信是吧??
现在要求实现的是a,b 聊天。
就我的理解,a,b 都不可能扮演 socket_server.php 这个角色,
因为 socket_server.php 是用来开启 通信端口 并作为 服务端端口 实时接收或推送消息的。
那么问题来了:
若a , b 都是 client_server.php , 那么我学习的 socket编程 不是成了废物??
因为 socket通信 是 socket_server.php 与 client_server.php 的通信,
不是client_server.php 与 client_server.php 之间的通信(类似a,b之间的通信),
我真是好心塞,不知如何破解?? 还是我对socket通信理解错了??
无论哪个,请大神纠正!最好是能够给个自己写的简单范例,不要网上那些一抓一大把的,
他们几乎都会让我 理解成现在这个问题所体现的那样...求教!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先你不要带着对server和client这两个词的意思去理解socket中的server和client。
举个简单的例子,a和b就好像两个人在打电话。
你觉得a和b都不能扮演server这个角色,是因为你觉得他们都属于“客户端”,应该是client呀,电信公司才是server。
然而不能用这种方式去理解socket中的server和client。
你应该把server当做被打电话的人,它的任务就是等待别人打来。
而client当做打电话的人,它需要做的是拨打电话。
在两个人接通电话之后,他们的角色就平等了,他们直接都可以互相说话。
socket中server和client的角色其实就用于谁监听的关系,至于在聊天里扮演什么角色,是无关紧要的。
看过别人的聊天室代码.点对点通讯,中间必须有一个socket server,其作用如下:
1.维护客户端uid和连接管道的socket_id的关系.
2.负责推送clientA 发生给clientB的信息(A发信息给B时,A需要告诉socket server 接收对象B的具体uid,这样根据作用1中说明的关系找到B的socket_id,推送就搞定了)
中间环节比较多交换,握手,解码,安全校验等等.
欢迎联系,相互学习.