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

scanf 的阻塞问题

    来源: 互联网  发布时间:2017-04-07

    本文导语:  聊天室程序,如何解决scanf阻塞的问题? 客户端的select部分代码如下: while( 1 )     {         /*记录集的初始化*/         FD_ZERO( &sock_set );         FD_SET( sockfd, &sock_set );         FD_ZERO( &write_set ...

聊天室程序,如何解决scanf阻塞的问题?
客户端的select部分代码如下:
while( 1 )
    {
        /*记录集的初始化*/
        FD_ZERO( &sock_set );
        FD_SET( sockfd, &sock_set );
        FD_ZERO( &write_set );   //键盘标准输入流的监听
        FD_SET( 0, &write_set );

        /*时间初始化*/
tv.tv_sec = 5;
tv.tv_usec = 0;

        res = select( FD_SETSIZE, &sock_set, &write_set, NULL, &tv );
switch( res )
{
            case -1:
        fprintf( stderr, "select error.n" );
exit( EXIT_FAILURE );
            case 0:
        break;
            default:
        if( FD_ISSET(sockfd, &sock_set) || FD_ISSET(0, &write_set) )
{
    if( FD_ISSET(sockfd, &sock_set) )
    {
                        nbytes = recv( sockfd, online_buff, sizeof(online_buff), 0 );
                        if( nbytes 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • fedora下的scanf問題
  • 关于scanf的大惑不解,高手请赐教
  • 在red hat下,使用vim时,怎样才能得到在线的帮助,比如我想看一下scanf函数的帮助??
  • 在JAVA下如何实现用户输入数据,像C的SCANF一样,给个例子吧
  • fgets 和scanf 、 C库函数 分割屏幕 聊天室
  • 求几行代码: 打开终端设备并读入几个字符(替代scanf),再显示出来。
  • 向sourceid提问,还是关于“在定时器到时后,应该发送什么信号让scanf()函数返回?”的
  • scanf无法终止,不停地从stin读入数据
  • java开发知识 iis7站长之家
  • 在定时器到时后,应该发送什么信号让scanf()函数返回?
  • 浅析SQLServer中的Scanf与Printf
  • 在输入输出字符串时scanf(),printf()和gets(),puts()的区别浅谈
  • 浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别
  • linux内核态下有没有类似于用户态下scanf()这种等待输入的语句?


  • 站内导航:


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

    ©2012-2021,