当前位置:  技术问答>linux和unix

socket通讯使用select的问题

    来源: 互联网  发布时间:2015-08-04

    本文导语:  我用select方法在一个套接字上投递了一个读的操作: char *buffer; buffer=NULL; while(1) { ... //设置读 FD_SET(socket, &rset); //如果缓冲区有数据,则发送数据 if(buffer) FD_SET(socket, &wset); ... select(maxfdp1,&rset,&wset,NULL,NULL);//程序在这里...

我用select方法在一个套接字上投递了一个读的操作:
char *buffer;
buffer=NULL;
while(1)
{
...
//设置读
FD_SET(socket, &rset);
//如果缓冲区有数据,则发送数据
if(buffer)
FD_SET(socket, &wset);
...
select(maxfdp1,&rset,&wset,NULL,NULL);//程序在这里阻塞住了
...
}
这个时候如果缓冲区内有了新的数据,我想再投递一个写操作,但是由于没有接收到数据,select语句无法返回,如何才能使select方法在需要的时候返回?

|
timeout!最后一个参数

|
用这句话可以将套接字设为非阻塞型套接字:
fcntl(sockfd, F_SETFL, fcntl(c_sockfd, F_GETFL) | O_NONBLOCK);

    
 
 

您可能感兴趣的文章:

  • 请问rmi通讯和socket通讯有什么优劣和异同?
  • socket 通讯开发包 Simple Sockets
  • Socket网络高手请进,关于socket通讯.
  • UNIX Domain Socket通讯是否要求主机上要有网卡?
  • 关于socket 通讯问题,请进。。。
  • Applet和Socket如何通讯
  • *******求教高手SOCKET通讯问题!
  • 关于socket通讯的一个问题
  • sockets 通讯的 C++ 包 SpnetKit
  • socket双向通讯模式请教
  • windows和linux进行socket通讯问题(高手请进!)
  • 关于socket 通讯
  • 关于socket通讯的一个小小问题
  • Socket 通讯的问题,困扰了我很久。
  • java 与c++用socket通讯的问题??字符串不能接收到??急啊!
  • 求Servlet与applet通过socket通讯,相关资料或源码,网址都行!谢谢啦。
  • linux 与 windows 之间 socket 通讯问题
  • 要编写一个后台的socket通讯程序,各位有没有什么好的建议?
  • 一个java和vc通讯的socket问题求解,急
  • 请教关于socket通讯中客户端接收服务端信息的问题
  • php使用socket_bind()函数绑定IP地址
  • 怎样解决"Cannot set Socket Options for Trasnmit Socket" error 当使用setsockopt() 在solaris 5.8
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • socket编程,使用recvfrom()函数监听问题。
  • 如何使用另外进程的socket
  • linux无线网络传输也可以直接使用socket接口编程吗?
  • Linux下的Socket通信如何断开连接的端口从而实现重复使用该端口
  • linux下面如何查询某个进程正在使用的socket句柄数量
  • 请问可以在一个Servlet里使用多线程和SOCKET吗?
  • 怎样使用socket方式取得web服务器上的页面
  • Socket 通讯的问题,困扰了我很久。 iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • select+read 读服务器发送过来的数据, 假设服务器调用close后, 客户端的select是否返回这个socket可读?
  • socket select异常?
  • select和非阻塞socket的迷惑
  • socket编程select对accept的影响
  • 请教linux下管理多个socket用什么,难道只能用select?
  • socket select()能否取得剩余时间
  • socket编程中的select问题
  • socket中的select模型问题
  • linux下用C写socket程序编程中的select里面的timeout的值的单位到底是什么?
  • 我做了个socket服务器,但是客户端接收数据的时候用select()函数????可接受不到
  • socket的select使用超时的问题
  • 【请教】Linux下用select()监测socket,是不是通常不去监测可写状态的?
  • 哪位高手给个unix系统下C语言socket+fork()+select()的例子?
  • 一个未连接的客户端socket套接字在select处的奇怪行为
  • 求助,关于linux下socket的select模式编程
  • socket编程中select()的用法,请给一个原代码!
  • 程序用socket和select导致ubuntu脱网
  • 服务器端关闭,客户端select 会一直可读, 读的长度是-1,怎么在不关闭客户端socket下,清除可读
  • socket中select函数求救
  • socket通信时,select一直返回超时的问题
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3