【发布时间】: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()函数是您应该编写的位,它应该做作业所说的事情......