问题描述
- epoll写聊天程序 如何实现非阻塞通信
-
比如
if(events[i].events&EPOLLOUT)
{
sockfd=events[i].data.fd;
int write_bytes=write(sockfd,write_buf,10);
modfd(epollfd,sockfd,EPOLLIN);
}
当发送之后就修改了sockfd的状态 如果接着写信息 只有等下次另一端发送信息后 修改sockfd为EPOLLOUT才会触发 才可以看到上次对方写的消息 请问这里该怎么写才能使得两端实时接收到对方发送的消息而不用自己必须先发送消息才能看得到还是说必须写成多线程的方式 用两个线程分别处理读和写操作?
时间: 2024-11-09 00:20:27