php socket通信问题??

发布于 2022-09-03 19:00:59 字数 542 浏览 12 评论 0

我的问题就是遇到下面这种情况的时候产生的,求解救啊...

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

三生路 2022-09-10 19:00:59

首先你不要带着对server和client这两个词的意思去理解socket中的server和client。

举个简单的例子,a和b就好像两个人在打电话。
你觉得a和b都不能扮演server这个角色,是因为你觉得他们都属于“客户端”,应该是client呀,电信公司才是server。
然而不能用这种方式去理解socket中的server和client。
你应该把server当做被打电话的人,它的任务就是等待别人打来。
而client当做打电话的人,它需要做的是拨打电话。
在两个人接通电话之后,他们的角色就平等了,他们直接都可以互相说话。

socket中server和client的角色其实就用于谁监听的关系,至于在聊天里扮演什么角色,是无关紧要的。

梦在夏天 2022-09-10 19:00:59

看过别人的聊天室代码.点对点通讯,中间必须有一个socket server,其作用如下:

1.维护客户端uid和连接管道的socket_id的关系.
2.负责推送clientA 发生给clientB的信息(A发信息给B时,A需要告诉socket server 接收对象B的具体uid,这样根据作用1中说明的关系找到B的socket_id,推送就搞定了)

中间环节比较多交换,握手,解码,安全校验等等.
欢迎联系,相互学习.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文