The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"При подключении к самонаписанному серверу возникает ошибка."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"При подключении к самонаписанному серверу возникает ошибка." 
Сообщение от стас13 Искать по авторуВ закладки(ok) on 23-Май-05, 16:13  (MSK)
Написал на C программу: сервер который посылает клиентам
время на серверном компьютере. Привожу исходные коды.
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <time.h>
#include <strings.h>
#define portnum 1300
#define hostlen 256
#define oops(msg) {perror(msg);exit(1);}
int main(int ac,char *av[]) {
  struct sockaddr_in saddr;
  struct hostent *hp;
  char hostname[hostlen];
  int sock_id,sock_fd;
  FILE *sock_fp;
  char *ctime();

  time_t thetime;
  //-------------------------------------------------------------------------//
  sock_id=socket(PF_INET,SOCK_STREAM,0);
  if(sock_id==-1)
    oops("socket");
  exit(1);
  bzero((void *)&saddr,sizeof(saddr));
  gethostname(hostname,hostlen);
  hp=gethostbyname(hostname);

  bcopy((void *)hp->h_addr,(void *)&saddr.sin_addr,hp->h_length);
  saddr.sin_port=htons(portnum);
  saddr.sin_family=AF_INET;
  if(bind(sock_id,(struct sockaddr *)&saddr,sizeof(saddr)) != 0)
    oops("bind");

  if(listen(sock_id,1) != 0)
    oops("listen");

  while(1){
//    oops("acepting");
    sock_fd=accept(sock_id,NULL,NULL);
  //  oops("Wow ! got a call\n");
    if(sock_fd == -1)
      oops("accept");
    sock_fp=fdopen(sock_fd,"w");
    if(sock_fd == NULL)
      oops("fdopen");
    thetime=time(NULL);

    fprintf(sock_fp,"The time is..");
    fprintf(sock_fp,"%s",ctime(&thetime));
    fclose(sock_fp);
  }
}
Писал и компилировал в emacs. При запуске emacs из консоли
появляется сообщение 'Warning: locale not supported
by C library, locale unchanged'.
Программа компилируется. Далее выполняю команды :
# ./a.out &
[1] 732
# 127.0.0.1 13000
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
[1] + Exit 1 ./a.out
#
локальной сети нет.

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "При подключении к самонаписанному серверу возникает ошибка." 
Сообщение от unk Искать по авторуВ закладки(ok) on 23-Май-05, 16:26  (MSK)
>  if(sock_id==-1)
>    oops("socket");
>  exit(1);
Без этого exit должно работать
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "При подключении к самонаписанному серверу возникает ошибка." 
Сообщение от naquad emailИскать по авторуВ закладки(??) on 23-Май-05, 19:14  (MSK)
>Написал на C программу: сервер который посылает клиентам
>время на серверном компьютере. Привожу исходные коды.
> ....
>  sock_id=socket(PF_INET,SOCK_STREAM,0);
>  if(sock_id==-1)
>    oops("socket");
>  exit(1);
> ....
Надо так:
if(sock_id==-1){
     oops("socket");
     exit(1);
}
Т.к. при написании таким образом: if(условие)<оператор> - выполянется только 1 оператор, если же if(условие){
   блок операторов
   .....
   .....
} - выполянется блок операторов
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру