Program server [niemożliwe połączenie z zewnątrz]

0

Witam napisalem prosty server, ktory czeka na polaczenie na konkretnym porcie a w chwili gdy je otrzyma rozlacza sie i zwraca connected. Moj problem polega na tym ze o ile przy poloczeniu sie przez telnet na localhost wszystko dziala ok, o tyle polaczenie z zewnatrz jest nie mozliwe. Probowalem przekierowac porty w liveboxie, ale to nic nie dalo. Wie ktos w czym tkwi problem?
Piszac wspomoagalem sie ta stronka http://cc-team.org/index.php?name=artykuly&show=154

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>


int main(void) {
  int s, result, cs = 0;
  struct sockaddr_in laddr;
  socklen_t laddr_len;

  /*tworzymy gniazdko*/
  s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  if (s < 0) {
    perror("socket");
    return 1;
  }

  memset(&laddr, 0, sizeof(struct sockaddr));

  laddr.sin_family = AF_INET;
  /*server bedzie nasluchiwac na 2000 porcie*/
  laddr.sin_port  = htons(8050);
  /*kazdy komputer moze sie polaczyc*/
  laddr.sin_addr.s_addr = htonl(INADDR_ANY);

  /*\"bindujemy\" port z gniazdkiem*/
  result = bind(s, (struct sockaddr*)&laddr, sizeof(struct sockaddr));
  if (result < 0) {
    close(s);
    perror("bind");
    return 1;
  }

  /*ustawiamy gniazdko (zbindowane) w tryb nasluchiwania*/
  result = listen(s, 5);
  if (result < 0) {
    close(s);
    perror("listen");
    return 1;
  }

  laddr_len = sizeof(struct sockaddr);

  /*czekamy dopoki cs == 0, czyli dopoki ktos sie z nami nie polaczy*/
  while ((cs = accept(s, (struct sockaddr*)&laddr, &laddr_len)) == 0);

  printf("Connection accepted.\n");

  /*teraz mozna juz zaczac wymieniac dane z klientem
    uzywajac zmiennej \"cs\"*/

  /*zamykamy gniazdko i polaczenie, ktore zostalo nawiazane z serverem*/
  close(cs);
  close(s);
  return 0;
} 
0
  1. przepuściłeś na firewallu (w sieci lokalnej działa)?

1 użytkowników online, w tym zalogowanych: 0, gości: 1