当前位置: 技术问答>linux和unix
两个进程之间可以同时绑定一个端口么?
来源: 互联网 发布时间:2016-11-19
本文导语: 最近在写有关NTP服务测试的客户端时,计划用两个客户端,一个专门向服务器发送请求,另一个专门接收服务器返回的请求。 使用UDP协议。问题来了 我在同一个机器下运行,发送端要指定发送到NTP服...
最近在写有关NTP服务测试的客户端时,计划用两个客户端,一个专门向服务器发送请求,另一个专门接收服务器返回的请求。
使用UDP协议。问题来了
我在同一个机器下运行,发送端要指定发送到NTP服务器的123端口,同时要求服务器按照发送端指定的端口8000(自定义的端口)返回请求,让接收端处理,接收端绑定的端口是8000。
我向NTP服务器发送数据时,可以正常发送,在抓包工具下可以看到服务也全部返回请求,可我接收端却收不到一个返回的请求,一直在处于等待接收状态。
于是我就想请问下,两个进程之间可以同时绑定一个端口么?
按图所示的要求,如何实现呢?
NTP服务器测试,分发送端与接收端,发送端与接收端同在一个机器下,同一个环境,示意图
使用UDP协议。问题来了
我在同一个机器下运行,发送端要指定发送到NTP服务器的123端口,同时要求服务器按照发送端指定的端口8000(自定义的端口)返回请求,让接收端处理,接收端绑定的端口是8000。
我向NTP服务器发送数据时,可以正常发送,在抓包工具下可以看到服务也全部返回请求,可我接收端却收不到一个返回的请求,一直在处于等待接收状态。
于是我就想请问下,两个进程之间可以同时绑定一个端口么?
按图所示的要求,如何实现呢?
NTP服务器测试,分发送端与接收端,发送端与接收端同在一个机器下,同一个环境,示意图
|
参考
#include
#include
#include
#include
#include
#include
#include
#include
#include
main()
{
int sktfd;
char s[64] = {0};
socklen_t clilen;
struct sockaddr_in client, server;
if( (sktfd = socket(AF_INET, SOCK_DGRAM, 0))