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

谁告诉我一个简单的并发TCP服务器中,如何进行大包处理?在线等ing

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

    本文导语:  我想实现一个简单的并发TCP服务器模型。现在有两个问题要问: 1。关于并发的实现方式,我用线程和进程都想实现一下,但是不知道在用多进程实现时后怎么处理僵进程 int main() { ...   socket(...);   ...   bind(...);  ...

我想实现一个简单的并发TCP服务器模型。现在有两个问题要问:
1。关于并发的实现方式,我用线程和进程都想实现一下,但是不知道在用多进程实现时后怎么处理僵进程
int main()
{
...
  socket(...);
  ...
  bind(...);
  listen(..);
  while(1)
  {
     tmpsock=accept(...);
     if((pid=fork())==0)
     {
         接收并处理大包

        close(tmpsock);

        exit(0);
      }
  }
}
在这种情况下,子进程处理完大包后退出后变成僵进程,但是父进程还需要不断监听,又不能够用wait来等待,似乎这样就没有了并发的意义了。请问如何收集这些僵尸进程。
这是第一个问题。
第二个问题是,不管用多线程还是多进程的并发服务器时,在处理大包的时候,应该怎么处理 啊。
比如说客户发了几兆的数据,而我开的缓冲只有几k,那么如何分步骤的读取和写入呢??
还有,就是一个socket每次到底可以写入多少数据最多。小弟这方面是新手,请高手指点,最好详细一点。分数不够可以加。谢谢!!!

|
1、父进程接收SIGCHLD信号,在信号处理函数里用wait。
2、TCP是可靠的流传输,用阻塞方式,只管写和读就可以了。如果写入太多,write会阻塞。

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 有谁告诉我如何使用main中的args进行输入输出的操作?
  • 谁能告诉我如何使用JAR进行压缩(语法)
  • 刚下载了j2sdkee1.2.1 谁能告诉我个大概这家伙怎么用呀,谢谢。另问,要进行java的开发是不是有这个就可以了。
  • 谁能告诉我哪儿有 j2sdk-1_3_1-win.exe 下载,最好告诉我url
  • 我的是red hat linux9,那位好心人告诉我如何在这个系统下搭建lamp平台,按照网上装了半天,总是出错,希望有人能告诉我一个可用的方法,详细点的,谢谢
  • 谁能告诉我,做一个象网易那样的聊天室,用什么方法,不要告诉我是用数据库或读写文件,是不是用多线程,socket协议。来讨论者皆有分。
  • 谁能告诉我类和库有什么区别,送分???????
  • 那里有IBM的WEBSPHERE下载,能告诉我下载的网址吗?
  • 请告诉我websphere4的详细安装步骤
  • 移动开发 iis7站长之家
  • 谁能告诉我pop3邮件操作命令列表?
  • 50分相送,告诉我gcc地址
  • 请告诉一下,下载的.iso文件怎么用?见笑见笑
  • 谁能告诉我JSP中怎样使用类??先谢谢了
  • 有谁能告诉我如何在Solaris下播放音乐CD呀?
  • linux进入界面需要login我不知道,谁能告诉我,谢谢
  • 各位大侠,谁告诉我怎么屏蔽?
  • 各位,能否告诉小弟那里有《thinking in java》可以下载啊!thx
  • 谁能告诉我SCJP考题的网址吗?
  • 快告诉我怎么选择所选文本好吗?
  • 谁能告诉我回车的ascii码是多少?(10进制的)
  • 哪位大哥,大姐知道国内那个网站有jdk1.4的API下载,告诉小弟一下
  • 谁告诉我什么地方有基于java或jsp的聊天室代码下。


  • 站内导航:


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

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

    浙ICP备11055608号-3