2013-11-27 3 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

Похоже, что из формулировки задания функция 'echo()' - это бит, который вы должны писать, и он должен делать то, что задание говорит, что оно должно ... – twalberg

ответ

0

В программах Windows DOS «эхо» используется для печати символа или строки на консоли. Я ожидаю, что вся эта функция «эха». Вероятно, он просто печатает значение для консоли для просмотра пользователем. Я предполагаю, что если вы вошли в объявление функции echo(), оно содержало бы немного больше, чем инструкция printf.

+0

Спасибо, это определенно имеет смысл. Единственный вопрос, который у меня есть, - как получить адрес сокета? – user2264035

Смежные вопросы