c5395348 2015-10-06 01:48 采纳率: 28.6%
浏览 786

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才会触发 才可以看到上次对方写的消息 请问这里该怎么写才能使得两端实时接收到对方发送的消息而不用自己必须先发送消息才能看得到

还是说必须写成多线程的方式 用两个线程分别处理读和写操作?

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 matlab实现基于主成分变换的图像融合。
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料
    • ¥15 使用R语言marginaleffects包进行边际效应图绘制
    • ¥20 usb设备兼容性问题
    • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊