2013-11-27 42 views
0

这是我工作的项目描述:echo()函数在这个程序中做了什么?

的 任务要求你写两个程序(echoClient和 EchoServer的),以证明使用TCP套接字两个进程 之间的通信。 该EchoServer的程序应该采取的端口号(例如6789 )作为输入:

$echoServer 6789 

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

$echoClient 127.0.0.1 6789 

echoServer打开套接字并等待来自 用户指定端口的请求。 (确保检查绑定结果,您很可能会有 有一些程序由您或其他人占用了端口)。 当连接成功设置时,echoServer 会读入套接字的数据,然后通过编写 “Echo:”来回显回显。其中“输入字符串”是任何 回显服务器读取的数据。 echoClient一次开始运行,它会打开一个连接到echoServer的套接字 。一旦连接到服务器, 它发送一个字符串到服务器,然后从服务器 回复读取,并打印出来。 echoServer程序需要能够支持并发 请求。服务器的基本结构是继作为 (您需要实现回声功能和 份意见表示主要功能。)

#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(); 
    } 
    } 
} 

我的问题是:什么是回波()函数在上面的程序应该做什么?有什么步骤来实现这个功能?

+1

这似乎是,从分配的措辞中,'回声()'函数在一点你应该写的,应该做的事情,即转让说,它应该... – twalberg

回答

0

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

+0

谢谢,这绝对有道理。我唯一的问题是如何获取套接字地址? – user2264035