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

select 处理客户端的问题

    来源: 互联网  发布时间:2016-07-01

    本文导语:  客户端程序,用select处理 Sock1  接受从服务器传送的消息 Sock2=0 接受从标准输入的消息 首先sock1连接服务器 然后把sock1和sock2都放到select里面 While(1) { Select(); If(sock1可读) { } If(sock2可读) { } } 这样会发现一旦程序...

客户端程序,用select处理
Sock1  接受从服务器传送的消息
Sock2=0 接受从标准输入的消息
首先sock1连接服务器
然后把sock1和sock2都放到select里面
While(1)
{
Select();
If(sock1可读)
{
}
If(sock2可读)
{
}
}
这样会发现一旦程序运行,在sock1处死循环,并从中读取的内容是0字节。
是因为sock1与服务器连接,所以一直判读为有读取内容,这个怎么处理?让它只有在服务器那边确实发送东西过来再响应。谢谢

|
就算是TCP连接着,对端没有切实的发送数据你的select也不会检测到数据可读。每次循环过后你需要重置FD_ZERO, FD_SET,以及超时时间。

|
While(1) 

FD_ZERO
FD_SET
Select(); 
If(sock1可读) 


If(sock2可读) 




|
如果读取的内容是0字节,表明客户端已经断开连接了,服务器应该收回这个资源了。

|
1楼正解

    
 
 

您可能感兴趣的文章:

  • select+read 读服务器发送过来的数据, 假设服务器调用close后, 客户端的select是否返回这个socket可读?
  • select客户端的使用
  • 服务器端关闭,客户端select 会一直可读, 读的长度是-1,怎么在不关闭客户端socket下,清除可读
  • 我做了个socket服务器,但是客户端接收数据的时候用select()函数????可接受不到
  • 一个未连接的客户端socket套接字在select处的奇怪行为
  • 各位大虾,请给我来个SELECT检测一服务器/客户端有效否,且有TIMEOUT限制的例子!!!
  • 求助!ntp协议客户端实现时,select超时
  • 多个客户端使用select的FD_ISSET问题
  • 对socket使用select(max_fd,&rd_set,&wr_set,&er_set,&timeout);当服务端断开TCP连接,客户端就会崩溃。怎么解决?谢谢
  • 服务器将select查询出来的数据直接向客户端发送,怎么改?
  • 紧急求救:select轮循,单进程处理多个客户连接问题(TCP/IP),那为大大指教,小弟不胜感激!!代码如下:
  • 多客户端Socket的select问题,高手帮忙!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于select函数返回错误的处理
  • select 处理套接字文件描述符
  • AIX上用shell处理db2 select的返回值
  • 请问,如何实现并处理JTree节点Multi-Selected?
  • 为什么作了信号处理之后select函数就不能正常工作了?
  • HTML标签参考手册 iis7站长之家
  • MySQL中SELECT+UPDATE处理并发更新问题解决方案分享
  • java命名空间javax.accessibility类accessiblestate的类成员方法: selected定义及介绍
  • 究竟怎么样取得的<select name="select_user" size="8" multiple>值
  • java命名空间javax.accessibility类accessiblestate的类成员方法: selectable定义及介绍
  • man select 结果返回 No manual entry for select
  • java命名空间javax.swing.tree类defaulttreeselectionmodel的类成员方法: selection定义及介绍
  • select <0时调用exit(0),为什么程序没有退出,而是继续执行select了?
  • java命名空间javax.swing.tree类defaulttreecellrenderer的类成员方法: selected定义及介绍
  • insert into select和select into的使用和区别介绍
  • java命名空间java.awt.event类itemevent的类成员方法: selected定义及介绍
  • JDBC里select sum和select返回的字段类型不一样
  • java命名空间javax.swing类defaultbuttonmodel的类成员方法: selected定义及介绍
  • sql代码:select database select all table
  • java命名空间javax.swing.text.html类html.tag的类成员方法: select定义及介绍
  • Oracle中select 1和select *的区别
  • java命名空间javax.swing.text.html类html.attribute的类成员方法: selected定义及介绍
  • jquery下拉select控件操作方法分享(jquery操作select)
  • java命名空间javax.swing.plaf.synth接口synthconstants的类成员方法: selected定义及介绍
  • INSERT INTO SELECT语句与SELECT INTO FROM语句的一些区别
  • java命名空间javax.sound.midi类shortmessage的类成员方法: song_select定义及介绍
  • select into 和 insert into select 两种表复制语句
  • java命名空间javax.swing类jfilechooser的类成员方法: cancel_selection定义及介绍
  • select into与insert into select 表复制语句学习实例


  • 站内导航:


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

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

    浙ICP备11055608号-3