服务器绑定到端口#s上的两个套接字:6666(用于服务来自客户端的SMS发送请求)和6661(用于服务来自客户端的EMAIL发送请求)。
既然我想以不同的方式为他们服务,……
代码主要是错误的,不会编译(检查不匹配的卷曲括号)。
接下来你的代码与你的文字说明不符(检查交换的端口号码文本说6666用于电子邮件,而代码实现了这个用于SMS处理)。
最后,即使纠正的代码也不是非常强大,不会陷入相互的,主要是不可救的死锁(详细了解这个 在其他许多帖子中都是如此 的 这里 强> 在StackOverflow或其他地方)。
给定两者中分配的端口号 的 .bind() 强> -methods映射了一对ZeroMQ- socket 实例分离到不同的端口#-s上,对于一个消息到达,毫无疑问,socket-instance { socket | socket2 } 这样的消息已经到来。
.bind()
socket
{ socket | socket2 }
鉴于此,所有SMS指定的消息都来自端口 的 6666 强> 。
6666
鉴于此,所有MAIL指定的消息都来自端口 的 6661 强> (除非发生了一些发送方意图的破坏,但这超出了问题的范围,不是吗?)
6661
我的问题是我们将如何选择性地运行SMS或EMAIL代码,具体取决于请求所在的端口号。@ user3666197锟绀Ayush Bajaj 32分钟前?
的 负 强> 先生,你的问题是“ 的 我该如何识别端口? 强> “ - 即如何检测端口#,而你的代码在语法和语义设计方面都是错误的。
语法错误已删除。我知道代码进入死锁状态。这可以通过运行SMS或EMAIL代码来避免,具体取决于请求所在的端口。锟绀Ayush Bajaj 21分钟前
的 负 强> ,先生,您的代码设计建议使用命令式纯 - [SERIAL] 计划在第一次期望从SMS入口访问端口#读取时进入阻塞等待状态: 的 6666 强> 并且当且仅当这确实在未来的某个时间发生时(从未保证确实发生),代码然后可以进入下一个(再次阻塞)等待状态并继续等待直到某些(如果有的话)EMAIL -ingress消息(希望)会到来。
[SERIAL]
你写道“对消息的到来毫无疑问,socket-instance {socket | socket2}这样的消息已经到来了。”您如何知道请求到达的端口 的 (代码请) 强> ,因此我们可以在17分钟之前为它服务锟绀Ayush Bajaj
对不起,这不是任何志愿者网站。
如果您已将问题从“ 的 我该如何识别端口? 强> “坚持别人这样的命令 (CIT。:) “ 的 代码请 强> “,请重新阅读关于使用的ZeroMQ API文档 的 poll() 强> 并且无需向其他人询问,就能正确完成工作。
poll()
StackOverflow社区热衷于帮助解决问题,这些问题是用MCVE制定的,但是没有,但MCVE代码片段确实代表了先前研究和设计+调试工作的有力证据,显然不是O / P代码的情况,也不是进一步转移问题方向的情况。
永远不要问 的 “(代码请)” 强>