echo()函数在这个程序中做了什么?

时间:2013-11-27 20:14:53

标签: c tcp echo

这是我正在研究的项目的描述:

在 赋值需要你编写两个程序(echoClient和 echoServer)演示两个进程之间的通信 使用TCP套接字。 echoServer程序应该使用端口号(例如 6789)作为输入:

$echoServer 6789

echoClient程序应该采用服务器IP地址(127.0.0.1) 和服务器端口作为输入:

$echoClient 127.0.0.1 6789

echoServer打开一个套接字并等待来自的请求 用户指定的端口。 (确保检查绑定结果。你很有可能 有一些程序由你或其他人占用了港口)。 成功设置连接后,echoServer 从套接字读入什么数据,并通过写入回显它 “Echo:”其中“输入字符串”是什么 echo服务器读入的数据。 echoClient一旦开始运行,就会打开一个套接字 连接到echoServer。一旦连接到服务器, 它将一个字符串发送到服务器,然后从中读取 从服务器回复,并打印出来。 echoServer程序需要能够支持并发 要求。服务器的基本结构如下所示 以下(你需要实现echo函数和 部分主要功能由评论表示。)

#include<stdio.h>
#include<string.h>    
#include<sys/socket.h>
#include<arpa/inet.h> 
#include<unistd.h>  

void echo (int sid, char *str);
int main (int argc, char **argv){
  int sockid, s;
  /* take in user specified port number from commandline argument */
  /* set up socket */
  int s = socket(PF_INET, SOCK_STREAM, 0);//I added this
  while ((s=accept(sockid, ... ))>0) {
    if (fork()==0){
      /* Child process */
      read(s, buf ....);
      echo(s, buf);
      exit();
    }
  }
}

我的问题是:上述程序中的echo()函数应该是什么?以及实现此功能的步骤是什么?

1 个答案:

答案 0 :(得分:0)

在Windows DOS程序中,“echo”用于将字符或字符串打印到控制台。我希望所有这些“回声”功能都可以。它可能只是向控制台输出一个值供用户查看。我的猜测是,如果你进入echo()函数的声明,它将只包含一个printf语句。