#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/un.h>
#include <arpa/inet.h>
#include <netdb.h>
int main(int argc, char** argv ){
if (argc!=4){
printf("Запускать так:\n%s <хост> <порт> <файл_прошивки>\nЛубягов Николай 2010г\n",argv[0]);
return 0;
}
struct sockaddr_in sa;
memset(&sa,0,sizeof(sa));
sa.sin_family=PF_INET;
int p;
if (sscanf(argv[2],"%d",&p)!=1){
printf("Ошибка: не могу преобразовать порт в число!\n");
return 0;
};
sa.sin_port=htons(p);
inet_pton(PF_INET,argv[1], &sa.sin_addr);
int skt=socket(PF_INET, SOCK_STREAM,IPPROTO_TCP);
if(-1 == skt){
printf("Ошибка: не могу создать сокет\n");
return 0;
}
if (connect(skt,(const void *)&sa,sizeof(sa))==-1){
printf("Ошибка соединения!");
}
FILE *f=fopen(argv[3], "r");
if (f==NULL){
printf("Ошибка: не могу открыть файл прошивки!\n");
return 0;
}
char buf[1024];
ssize_t s;
while ((s=fread(buf,1,1024,f)) > 0){
// printf ("data %d %s\n",s, buf);
if (send(skt,buf,s,0)!=s){
printf("Ошибка: немогу передать прошивку на принтер!\n");
return 0;
}
}
shutdown(skt,SHUT_RDWR);
return 0;
}
В общем нужен готовый EXE-шник. Если кто поможет, буду признателен. Выслать можно по адресу diozan at yandex.ru