Как я могу открыть сервер в локальной сети? - PullRequest
0 голосов
/ 20 июня 2019

Я хочу сделать сервер-клиентскую программу в локальной сети. Я использую 0.0.0.0, чтобы открыть сервер. И мой адрес iPv4 - 192.168.1.3. Я пытаюсь подключиться к серверу. Я не уверен, что клиент не может подключиться к серверу или сервер не принимает запрос.

Даже после выключения WINDOWS DEFENDER я не нахожу никаких сообщений. Я открываю порт на серверном компьютере, когда я пишу "netstat -a" в cmd серверного компьютера, я вижу прослушивание 7700. Но когда я пишу "netstat -a" в cmd компьютера КЛИЕНТА, я не вижу прослушивание 7700.

//MY SERVER
#include <iostream>
#include<ws2tcpip.h>
using namespace std;
int main(){
    cout<<"SERVER"<<endl;
    WSADATA x;
    WSAStartup(MAKEWORD(2,2),&x);
    SOCKET server;
    server=socket(AF_INET,SOCK_STREAM,0);
    if(server==INVALID_SOCKET){
        cout<<"-socket"<<endl;
    }
    struct sockaddr_in adres;
    adres.sin_port=htons(7700);
    adres.sin_family=AF_INET;
    adres.sin_addr.s_addr=inet_addr("0.0.0.0");
    if(GetLastError()!=0){
        cout<<GetLastError()<<endl;
    }
    int b=bind(server,(struct sockaddr*)&adres,sizeof(adres));
    if(b==-1){
        cout<<"-bind"<<endl;
    }
    int l=listen(server,4);
    if(l==-1){
        cout<<"-listen"<<endl;
    }
    struct sockaddr_in client;
    if(GetLastError()!=0){
        cout<<GetLastError()<<endl;
    }
    int sizq=sizeof(client);
    SOCKET c=accept(server,(struct sockaddr*)&client,&sizq);
    if(c==INVALID_SOCKET){
        cout<<"-accept"<<endl;
    }
    char name[100];
    int pr=recv(c,name,100,0);
    if(pr==-1){
        cout<<"-name take"<<endl;
    }
    cout<<name<<" connected."<<endl;
    char msg[100];
    while(1){
        int r=recv(c,msg,100,0);
        if(r==-1){
            for(int q=6;1;q--){
                cout<<name<<" disconnected ("<<q<<")"<<endl;
                Sleep(1000);
                if(q==0){
                    break;
                }
            }
            break;
        }
        cout<<name<<":"<<msg<<endl;
    }
    closesocket(server);
    WSACleanup();
    return 0;
}
//CLİENT
#include<iostream>
#include<winsock2.h>
#include<windows.h>
#include<ws2tcpip.h>
#include<string.h>
#include<string>
#include <stdio.h>
using namespace std;
int main(){
    WSADATA ab;
    WSAStartup(MAKEWORD(2,2),&ab);
    cout<<"CLIENT"<<endl;
    SOCKET server;
    server=socket(AF_INET,SOCK_STREAM,0);
    struct sockaddr_in as;
    if(GetLastError()!=0){
        cout<<GetLastError()<<endl;
    }
    as.sin_addr.s_addr=inet_addr("192.168.1.3");
    as.sin_family=AF_INET;
    as.sin_port=htons(7700);
    if(GetLastError()!=0){
        cout<<GetLastError()<<endl;
    }
    SOCKET b=connect(server,(struct sockaddr*)&as,sizeof(as));
    char name[100];
    gethostname(name,100);
    send(server,name,100,0);
    if(GetLastError()!=0){
        cout<<GetLastError()<<endl;
    }
    char msg[100];
    while(1){
        cout<<"Mesaj:";
        cin>>msg;
        send(server,msg,100,0);
        if(GetLastError()!=0){
            cout<<GetLastError()<<endl;
        }
    }
    closesocket(server);
    WSACleanup();
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...