Hallo!
Ich habe mich jetzt zum ersten mal mit sockets befasst, und es klappt im Moment nicht so wie ich das will Das Ziel ist es ein Server- und ein Client-Programm zu erstellen, die ungefaehr nach dem folgenden Schema kommunizieren:
Der aufbau vom Client ist bei mir folgender:
Der Aufbau vom Server:
Das funktioniert im moment aber alles irgendwie nicht, beim ersten recv bleibt alles stehen (nachdem alles eig. schon empfangen wurde) ..
Koennt ihr vllt helfen?
danke und mfg frager
Ich habe mich jetzt zum ersten mal mit sockets befasst, und es klappt im Moment nicht so wie ich das will Das Ziel ist es ein Server- und ein Client-Programm zu erstellen, die ungefaehr nach dem folgenden Schema kommunizieren:
Code:
Client connectet zum Server
Client message an server
Server message an client
Client message an server
[...] usw..
Client oder server schliesst die Verbindung
Der aufbau vom Client ist bei mir folgender:
Code:
main
{
WSAStartup(..)
sockfd = socket(AF_INET, SOCK_STREAM, 0);
connect(sockfd, (sockaddr*)&serv_addr, sizeof(serv_addr));
do {
send(sockfd, cmd, (int)strlen(cmd), 0)
bytercv = recv(sockfd, cmd, 1024, 0);
cout << cmd << endl;
} while(strcmp(cmd, "quit"));
closesocket(sockfd);
WSACleanup();
return 0;
}
Der Aufbau vom Server:
Code:
main
{
WSAStartup(..)
sockfd = socket(AF_INET, SOCK_STREAM, 0);
bind(sockfd, (sockaddr*)&serv_addr, sizeof(serv_addr));
while(listen(sockfd, 2) != -1) {
sockfd_inc = accept(sockfd, (sockaddr*)&client_addr, &client_addr_size));
bytercv = recv(sockfd_inc, buf, 1024, 0);
buf[bytercv] = 0;
cout << buf;
cout << " [OK]" << endl;
strcpy_s(buf, 1024, "OK");
send(sockfd_inc, buf, (int)strlen(buf), 0);
}
closesocket(sockfd);
WSACleanup();
return 0;
}
Das funktioniert im moment aber alles irgendwie nicht, beim ersten recv bleibt alles stehen (nachdem alles eig. schon empfangen wurde) ..
Koennt ihr vllt helfen?
danke und mfg frager