Это клиент;
Код:
#define PORT1 1234
#define PORT2 4321
int main() {
struct sockaddr_in serv,cli;
int sock;
char buf[64],recved[64];
int from_len;
sock=socket(AF_INET,SOCK_STREAM,0);//создаем сокет
serv.sin_family=AF_INET;
serv.sin_port=htons(PORT2);
serv.sin_addr.s_addr=INADDR_ANY;
if(bind(sock,&serv,sizeof(serv)) < 0 )//биндим клиент
{ printf("Error binding\n");
* * * *exit(-1);
}
cli.sin_family=AF_INET;
cli.sin_port=htons(PORT1);
cli.sin_addr.s_addr=inet_addr("127.0.0.1");
int conn=connect(sock,&cli,sizeof(cli));//коннектимся
if(conn) {
* * * *printf("Connected\n");
}
while(1) {//цикл отправки и принятия команды
* * * *printf("\nmy_bash$");
scanf("%s",&buf);//считываем команду
send(sock,buf,sizeof(buf),0);//отправляем команду
from_len=recv(sock,recved,sizeof(recved),0);//получаем результат
write(1,recved,from_len);//выводим результат на зкран
perror("Status");
if(buf=="killbill")//если команда killbill то выходим
{break;}
}
close(sock);
}
Клиент вроде правильно сделан
Я немного переделал сервер,но все равно глючит:
Код:
while(1) {
* * * * lp=fopen("temp","r+");
* * * * dup2(lp,1);
* * * * dup2(lp,2);
* * * * from_len=read(acc,buf,64);
* * * * if(buf=="killbill") {
* * * * * * * * break;
* * * * }
* * * * fprintf(fp,"%s",buf);
* * * * perror("Status");
* * * * fscanf(lp,"%s",&postbuf);
* * * * send(acc,postbuf,sizeof(postbuf),0);
* * * * fclose(lp);
}
[s]Исправлено:
Prisoner, 1:09 8-06-2004[/s]