首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux网络编程的有关问题

2013-01-21 
linux网络编程的问题能不能让服务端先去干点别的事,如果客户端发送数据到socket,服务端再立刻响应?[解决办

linux网络编程的问题
能不能让服务端先去干点别的事,如果客户端发送数据到socket,服务端再立刻响应?
[解决办法]
I/O复用。


[解决办法]
楼主搜索 epoll + 多线程
[解决办法]
并发服务器吧,,select,多线程,多进程都可以的吧。。
[解决办法]
TCP EPOLL 或者 select 等模型都可以实现。但是你还是要开个线程监听事件
[解决办法]
socket你没有设置为非阻塞, 

static int make_socket_non_blocking (int sfd)
{
int flags, s;

flags = fcntl (sfd, F_GETFL, 0);
if (flags == -1)
{
perror ("fcntl");
return -1;
}

flags 
[解决办法]
= O_NONBLOCK;
s = fcntl (sfd, F_SETFL, flags);
if (s == -1)
{
perror ("fcntl");
return -1;
}

return 0;
}

[解决办法]
套接字设置为非阻塞后, 你要判断 recv send函数的返回值 <0 并不代表网络出错, 还要判断错误代码才能确定是否真的出错。 祝你好运。。
[解决办法]
可以的,先调用fcntl函数设置套接字为非阻塞的情况,然后可以通过IO多路复用,例如select、poll进行接受和发送客户端信息

热点排行