我的客户端/服务器设置有什么问题?

时间:2013-11-26 01:37:23

标签: c++ c linux tcp

我在这里弄清楚这段代码有什么问题。它工作,然后我改变缓冲区大小,现在我已经打破它。这是一个基本项目,客户端从stdin读取数据,然后将其发送到服务器。服务器然后将其发送回去,客户端用ECHO将其打印出来:写在它前面。

在我的代码中,这是第一次使用。在第二次,它没有做任何事情,但服务器仍然收到并打印来自客户端的消息。在第三次尝试时,客户端打印出ECHO:ECHO:然后打印来自尝试2的消息。之后,它与尝试2的工作方式相同。我尝试仅包含相关的代码段,但如果需要,我可以提供更多。我认为这个问题是我不小心破产的愚蠢行为。

服务器:

while((c = accept(s, (sockaddr*)&caddr, (socklen_t*)&len))>0){
    if(fork()==0){//child                                                                             
      while((i = read(c, buf, 128))>0){
        buf[i]=0;
        send(c, buf, 128, 0);
        cout << buf;
      }
    cout << "end communication with " << c << endl;
    exit(0);
  }else{//parent                                                                                    
  }
}

客户端:

while((i = read(0, message, 127)) > 0){                                                                                  
  message[i] = 0;
  send(sClient, message, 127, 0);
  cout << "ECHO: ";
  read(sClient, response, 127);
  cout << response;                                                                                                
}

0 个答案:

没有答案