Pokaż wyniki 1 do 3 z 3

Temat: [WinSock] Klient - serwer

  1. #1

    Domyślnie [WinSock] Klient - serwer

    Mam następujący kod serwera:

    Kod:
    #include "naglowki.h"
    using namespace std;
    void main()
    {
    	long answer;
    	WSAData wsaData;
    	WORD DLLVERSION;
    	DLLVERSION = MAKEWORD(2,1);
    	answer = WSAStartup(DLLVERSION, &wsaData);
    	SOCKADDR_IN addr;
    	int addrlen = sizeof(addr);
    
    	SOCKET $Listen;
    	SOCKET $Connect;
    
    	$Connect = socket(AF_INET, SOCK_STREAM, NULL);
    	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    	addr.sin_family = AF_INET;
    	addr.sin_port = htons(1234);
    	$Listen = socket(AF_INET, SOCK_STREAM, NULL);
    	bind($Listen, (SOCKADDR*)&addr, sizeof(addr));
    	listen($Listen, SOMAXCONN);
    
    	for(;;)
    	{
    		cout<<"Oczekiwanie na polaczenie przychodzace..."<<endl;
    
    		if($Connect != accept($Listen, (SOCKADDR*)&addr, &addrlen));
    		cout<<"Znaleziono polaczenie"<<endl;
    	}
    
    
    }
    klientem jest windosowski telnet, wpisuję:
    open 127.0.0.1 1234, obiekt cout klasy ostream wyświetla na ekran Znaleziono polaczenie, i wszystko fajnie, ale do czasu gdy chciałbym łączyć się poza LAN'em.
    Przykładowo, canyouseeme.org pokazuje mój adres 176.126.252.11, ip wewnętrzne to jakieś 192.168.1.x, więc myślę sobie, zamienię ip w serwerze:
    Kod:
    addr.sin_addr.s_addr = inet_addr("176.126.252.11");
    , port zostawię ten sam. Po odpaleniu programu serwera, serwer nie oczekuje na połączenie, obie instrukcje pętli nieskończonej wykonują się, cykl się powtarza i powtarza i powtarza.

  2. #2
    Zarejestrowany
    Oct 2008
    Skąd
    woj. Lubuskie. Dokładniej się nie da
    Postów
    405

    Domyślnie

    Prawdopodobnie jesteś za NATem. Jeżeli masz przypisany publiczny IP do twojego routera (zależy od operatora i usługi - po kablu zwykle się jakieś ip dostaje), a nie łączy się przez PPP/PPPoE, możesz spróbować przekierować sobie port na routerze i wtedy spróbować połączyć się z poza lanu. Proponuję poszukać stosownej informacji w instrukcji obsługi urządzenia lub w google.
    Jeśli nie będziesz mieć pod górke, nigdy nie dojdziesz na szczyt.

  3. #3

    Domyślnie

    Cytat Napisał Piatkosia2010 Zobacz post
    Prawdopodobnie jesteś za NATem. Jeżeli masz przypisany publiczny IP do twojego routera (zależy od operatora i usługi - po kablu zwykle się jakieś ip dostaje), a nie łączy się przez PPP/PPPoE, możesz spróbować przekierować sobie port na routerze i wtedy spróbować połączyć się z poza lanu. Proponuję poszukać stosownej informacji w instrukcji obsługi urządzenia lub w google.
    Przy ppp/pppoe również dostanie adres ip i również jest w stanie przekierować sobie porty. Jest to kwestia tylko tego na ile pozwala operator konfiguracją swojej sieci.

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj