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

做一个server端怎么办才能收发数据

    来源: 互联网  发布时间:2015-10-17

    本文导语:  想做个server端,client连上了之后,如果我这里有数据发给client端就能send,如果client有数据过来就读,现在我只能读完了之后立刻回复一条,不能直接就给client发,有没有个小demo看看,这个是我accept之后做的事情    ...

想做个server端,client连上了之后,如果我这里有数据发给client端就能send,如果client有数据过来就读,现在我只能读完了之后立刻回复一条,不能直接就给client发,有没有个小demo看看,这个是我accept之后做的事情
     while(1)
{
timeout.tv_sec = 120;
timeout.tv_usec = 0;
FD_ZERO(&readset);
FD_SET(socket,&readset);
if(select(socket+1,&readset,NULL,NULL,&timeout) is_stop = 1;
return 0;
}
mylen=recv(socket,&buf,sizeof(buf),0);
   if(mylen==-1)
   {
   puts("recv error");
   return 0;
   }
   if(mylen>0)
   {
    puts("recv");
    puts(buf);
   readmsg(buf);
   }    
                 strcpy(sendbuf,"123");
len=strlen(sendbuf);
         if(send(socket,&sendbuf,len,0) == -1)
         {         
close(socket);
trans->is_stop = 1;
                          return 0;
         }
     
}

|
一般accept后都开一个线程

|
你上面得代码最好放在一个线程内。加一个发送缓冲链表,select时在加一个writeset,判断为可写时就从发送缓冲链表内取一项发送出去,循环...

|
你的select只有读队列,在client没有传信息来之前就阻塞住了,当然不能先往client写了。
建议开两个进程,一个专门读,一个专门写,进程间通过ipc通讯。

    
 
 

您可能感兴趣的文章:

  • 请教高人:同一个套接字(做客户端)连接到server后在不同子进程里使用能否不采取互斥措施收发?
  • SQL Server 复制需要有实际的服务器名称才能连接到服务器
  • 请问IBM HTTP SERVER怎么才能解释jsp文件呀?
  • 客户端向web server发出get请求,要用到那些类才能实现?
  • 怎样配置JB5,才能使EJB的项目图标不虚?(注:我的JB5安装时勾选了BORLAND APPLICATION SERVER4.5!)
  • 怎么才能限制SQL Server只能让指定的机器连接
  • win2000, tomcat 4.0 我修改server.xml,(改端口等) 只能重起win2000才能生效,用start tomcat 和stop tomcat都不行,how can i do?
  • red had linux9.0工作站如何设定才能通过Windows ISA Server上Internet?
  • 我怎样才能运行我的java程序(我装了JavaTM 2 SDK, Standard Edition Version 1.3.1,我的系统是2000server,没有dos)
  • 不知如何配置网络上网,我是用win2k server 服务器 共亨上网的,可网卡驱动在哪里可以装呢?如何配ip 和路由才能上网呢
  • C#怎样才能将XML文件导入SQL Server
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 急问:Canna Server初始化失败,该怎么办?
  • 装了linux7.3以后,win2000server有问题了,怎么办???
  • linux iis7站长之家
  • SQL SERVER 2000J DBC驱动不能在jdk1.4下安,说是找不到jvm.我该怎么办?
  • 我安装了win2003server,现在想再装个Linux该怎么办?
  • 建WLS7的SQL Server Connection Pool时遇到的错误,该怎么办,高手?
  • 我的机器上有win2000和linux(redhat7.3),现在象把linux干掉,装win2000server,该怎么办?直接把linux那个分区格掉可以吗?还要删掉一些什
  • GURB >_的问题!~我先装windows 20000 server后,又装了Linux9.0,在Window下删除了Linux的分区后,重新启动时提示GURB >_,怎么办?是不是还
  • java命名空间javax.management.monitor类monitor的类成员方法: server定义及介绍
  • 有谁知道application server和web server有什么区别?为什么weblogic 会被叫作application server呢?
  • java命名空间java.net类httpurlconnection的类成员方法: http_server_error定义及介绍
  • 纯异步的Server简单实现 Server
  • java命名空间javax.security.sasl类sasl的类成员方法: server_auth定义及介绍
  • 关于iPlanet Web Server在Win2000Server上配置运行的问题?(在线等待,解决寄给分,请进!)
  • java命名空间java.rmi.server类uid的类成员方法: uid定义及介绍
  • 如果实现类似server start 和server stop这样的功能.
  • java命名空间java.rmi.server类logstream的类成员方法: brief定义及介绍
  • 命令用法 smbmount //server/share /mnt/server -o username=administrator
  • java命名空间java.rmi.server接口remoteref的类成员方法: serialversionuid定义及介绍
  • iPlanet Directory Server和iPlanet Web Server性能、价格各几何?
  • java命名空间java.net枚举authenticator.requestortype的类成员方法: server定义及介绍
  • 微软网站下载的Ms SQL Server2000 JDBC Driver,必须用英文版的SQL server2000吗?
  • java命名空间java.rmi.server类logstream的类成员方法: silent定义及介绍
  • 我是server生手,请问关于domain和server的问题
  • java命名空间java.rmi.server类remoteobject的类成员方法: ref定义及介绍
  • 关于iPlanet Web Server在Win2000Server上配置运行的问题?(在线等待,解决即给分,请进!)
  • java命名空间java.rmi.server类servernotactiveexception的类成员方法: servernotactiveexception定义及介绍
  • 把一个web app从一个tomcat server移到另一个tomcat server,中文乱吗!!!
  • java命名空间java.rmi.server接口unreferenced的类成员方法: unreferenced定义及介绍
  • 安装sql server 2008 management提示已安装 SQL Server 2005 Express的解决方法


  • 站内导航:


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

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

    浙ICP备11055608号-3