zylthinking
发表于 2014-08-15 18:40
回复 10# zylthinking
我去啊, 我他妈的真实傻逼, 这比 完成端口傻逼多了
int do_udp_read(int fd, struct my_buffer* mbuf)
{
io_context* ioc = (io_context *) mbuf;
DWORD flags = 0, bytes = 0;
struct sockaddr_in in;
int sz = sizeof(sockaddr);
int n = WSARecvFrom(fd, &ioc->wsa_buffer, 1, &bytes, &flags, (sockaddr *) &in, (LPINT) &flags, &ioc->overlap, NULL);
DWORD code = WSAGetLastError();
if (n == 0 || WSA_IO_PENDING == code) {
return 0;
}
errno = EFAILED;
return -1;
}
__BlueGuy_
发表于 2014-08-15 18:51
c/unix
发表于 2014-08-15 21:11
hellioncu
发表于 2014-08-15 21:20
完成端口是异步IO,这点跟epoll之类的差别很大
zylthinking
发表于 2014-08-15 21:25
__BlueGuy_ 发表于 2014-08-15 18:51 static/image/common/back.gif
什么错 ?
标红的看不到?
__BlueGuy_
发表于 2014-08-15 22:08
folklore
发表于 2014-08-15 22:25
回复 11# zylthinking
这种错误看正常吧, 我写的代码的错误经常都是这种, 没有80%也有90%, 余下的大多是漏写语句。
yulihua49
发表于 2014-08-18 15:14
本帖最后由 yulihua49 于 2014-08-18 15:15 编辑
zylthinking 发表于 2014-08-15 18:40 static/image/common/back.gif
回复 10# zylthinking
我去啊, 我他妈的真实傻逼, 这比 完成端口傻逼多了
改正了,就好了吗?
请回答。
我们关心IOCP本身是否有问题。
selfrun
发表于 2014-08-19 09:37
UDP就别用完成端口了,直接用select就好。
完成端口跟linux下的AIO接口类似,跟epoll是两码事
zylthinking
发表于 2014-08-19 09:37
回复 18# yulihua49
完成端口没问题