gpt4 book ai didi

c++ - 在发送和接收数据报套接字中都可以使用吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:54:04 25 4
gpt4 key购买 nike

我的类 MasterSlaveSynchronize 用于发送和接收心跳。只有一个数据报套接字可以同时用于发送和接收吗?

下面2个方法时不时运行,可以同时运行。

void MasterSlaveSynchronize::sendHearBeat() {
const int HEARBEAT_LEN = 1;
const char HEARBEAT[1] = { '1' };

int n = sendto(sock, HEARBEAT, HEARBEAT_LEN, 0,(const struct sockaddr *) &target_, length_);
if (n < 0)
printf("Sendto"); //TODO ERR
}

void MasterSlaveSynchronize::recivedHearBeat() {
char buf[1024];
if (bind(sock, (struct sockaddr *) &this_, length_) < 0)
printf("binding"); //TODO err
while (1) {
int n = recvfrom(sock, buf, 1024, 0, (struct sockaddr *) &target_,&length_);
if (n < 0)
printf("recvfrom"); //TODO ER
//TODO update got hearbeat
}

最佳答案

是的,sendtorecvfrom 使用相同的套接字很好(确实是预期的)。

但是您的recivedHearBeat() 函数永远不会退出。如果它在单独的线程中运行,那没关系。

关于c++ - 在发送和接收数据报套接字中都可以使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12581334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com