Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά σας παιδιά έχω αγαναχτήσει..... προσπαθώ να φτιάξω έναν client server με το winsock .. ανόιγω τον client ο οποίος προσπαθεί να κάνει σύνδεση στον server.. πραγματοποιήται η σύνδεση εχω και στον server οταν γινεται μια σύνδεση να βγάζει ενα μυνημα connected.. το θέμα μου είναι οτι οταν κλείσω τον σέρβερ ο client δεν ξανασυνδέεται, μονο αμα τον κλείσω και τον ξανανοίξω η αμα  πάω και ανοιξω δευτερη φορα το client.exe .. εγω θέλω όμως όταν κλείνει ο server ο client να προσπαθει να ξανασυνδεθεί αν χαθεί η σύνδεση..  ο κώδικας τοu client ειναι αυτος

 

 

"

 

#include <iostream>
#include <winsock.h>
#include <winsock2.h>
 
 
using namespace std;
 
int main()
{
 
 
long SUCCESSFUL;
WSAData WinSockData;
WORD DLLVERSION;
DLLVERSION = MAKEWORD(2,1);
SUCCESSFUL = WSAStartup(DLLVERSION,&WinSockData);
 
 
SOCKADDR_IN ADDRESS;
 
int AddressSize = sizeof(ADDRESS);
 
SOCKET sock;
 
 
 
 
 
sock = socket(AF_INET, SOCK_STREAM, NULL);
ADDRESS.sin_addr.s_addr = inet_addr("192.168.2.3");
ADDRESS.sin_family = AF_INET;
ADDRESS.sin_port = htons(1010);
 
 
 
while(1)
{
 
 
SUCCESSFUL = connect(sock,(SOCKADDR*)&ADDRESS, sizeof(ADDRESS));
 
 
 
}
 
 
 
 
 
}
 
"
 
Εχω όπως βλέπεται το while  αλλα δεν το επαναλαμβανει αν συνδεθεί μια φορά καπου κολαει η δεν ξέρω και εγώ τι μπορει κάποιος να βοηθήσει;
Δημοσ.

Εαν φας dc, τοτε φτιαχνεις νεα socket και ξανακανεις connect.

ναι αυτο είναι το θέμα οτι δεν ξέρω πως να ελένξω αν στον server που εγινε η συνδεση ειναι ακομα alive ωστε να πω μετα αν αποσυνδεθηκε shutdown closesocket wsacleanup και να ξανακαλεσω main για να φτιαξει νεο socket

Δημοσ.

Τι είναι αυτό; (δηλαδή κάθε ms κάνεις Connect;;; μια φορά κάνουμε Connect και μετά έχουμε τον βρόχο για να μην τερματίσει το πρόγραμμα(με την σειρά του και το Socket).

while(1)
{
   SUCCESSFUL = connect(sock,(SOCKADDR*)&ADDRESS, sizeof(ADDRESS));
}

Απ' όσο ξέρω από άλλες γλώσσες, κάνεις Connect και ύστερα μπαίνεις σε βρόχο.

 

Παράδειγμα σε C#

            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Connect("host", 80);

            while (socket.Connected)
            { 
                // Whatever
            }

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...