是否可以在数据报套接字中同时用于发送和接收
Is it ok to use in both datagram socket for send and received?
我的类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
}
是的,对sendto
和recvfrom
使用相同的套接字是可以的(确实是意料之中的)。
但是,您的recivedHearBeat()
函数永远不会退出。 没关系,如果它在单独的线程中运行。
相关文章:
- 如何使用 asio 本地数据报构建回显服务器和客户端?
- 连接UDP套接字,但仍然接收来自其他源的数据报
- UDP 客户端(接收器)未按预期接收数据报
- QT UDP套接字返回空数据报
- 在Wireshark中看到的数据报,未由QT UDP套接字收到
- QUdpSocket:无法接收数据报
- Udp 在 QT 定时器信号中写入数据报
- 是否可以在数据报套接字中同时用于发送和接收
- 自动决定要用于数据处理的类
- 通过Boost Asio获取UDP数据报长度
- QUdpsocket在处理前一个数据报时丢失数据报
- 用于数据包注入的 Libnet 与原始套接字
- UDP 数据报套接字编程,服务器在 JAVA 中,客户端在 C++
- 用于数据存储和分析的库
- 如何修改数据报原始TCP/IP
- 数据报Unix套接字上的ECONNREFUSED
- Qt数据报结构结果:混合序列
- UDP数据报计数
- Boost.Asio数据报(UDP)套接字,既绑定又连接
- 从网络队列中读取多个数据报