【问题标题】:What does the echo() function do in this program?echo() 函数在这个程序中做了什么?
【发布时间】:2013-11-27 20:14:53
【问题描述】:

这是我正在从事的项目的描述:

作业要求您编写两个程序(echoClient 和 echoServer) 来演示两个进程之间的通信 使用 TCP 套接字。 echoServer 程序应采用端口号(例如 6789) 作为输入:

$echoServer 6789

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

$echoClient 127.0.0.1 6789

echoServer 打开一个套接字并等待来自 用户指定的端口。 (确保检查绑定结果。你很可能会 您或其他人的某些程序已经占用了该端口)。 成功建立连接后,echoServer 从套接字读取什么数据,并通过写入回显 “回声:”其中“输入字符串”是什么 回显服务器读取的数据。 echoClient 一旦开始运行,它就会打开一个套接字以 连接到 echoServer。连接到服务器后, 它向服务器发送一个字符串,然后从 从服务器回复,并打印出来。 echoServer 程序需要能够支持并发 要求。服务器的基本结构提供为 以下(您需要实现回声功能和 由 cmets 指示的主要功能的一部分。)

#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() 函数应该做什么?以及实现这个功能的步骤是什么?

【问题讨论】:

  • 从作业的措辞看来,echo() 函数是您应该编写的位,它应该做作业所说的事情......

标签: c tcp echo


【解决方案1】:

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

【讨论】:

  • 谢谢,这绝对是有道理的。我唯一的另一个问题是如何获取套接字地址?
猜你喜欢
  • 2020-11-04
  • 2018-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 2012-10-16
相关资源
最近更新 更多