?
Hallo,
also ich habe es noch immer nicht hinbekommen, eine Nachricht vom Server-Programm zum Client-Programm zu senden, deshalb poste ich mal den ganzen Code.
Hier ist der Code des Servers:
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <winsock.h>
int main() {
WSADATA wsaData;
if (WSAStartup (MAKEWORD(1, 1), &wsaData) != 0) {
fprintf (stderr, "WSAStartup(): Kann Winsock nicht initialisieren.\n");
exit (EXIT_FAILURE);
}
int sockfd = socket (AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
perror ("socket()");
}
struct sockaddr_in my_addr;
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(5000);
my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) {
perror ("bind()");
}
int len = sizeof(struct sockaddr);
getsockname(sockfd, (struct sockaddr *) &my_addr, &len);
printf ("Port: %d\n", ntohs(my_addr.sin_port));
if (listen (sockfd, 5) == -1) {
perror ("listen()");
}
int sin_size = sizeof (struct sockaddr_in);
struct sockaddr_in remote_host;
int sock2 = accept (sockfd, (struct sockaddr *) &remote_host, &sin_size);
if (sock2 == -1) {
perror ("accept()");
}
char *msg = "Diese Nachricht kommt vom Server!";
len = strlen (msg);
if (send (sockfd, msg, len, 0) == -1) {
perror ("send()");
}
closesocket(sockfd);
WSACleanup();
return 0;
}
Und hier der Code des Clients:
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <winsock.h>
int main() {
WSADATA wsaData;
if (WSAStartup (MAKEWORD(1, 1), &wsaData) != 0) {
fprintf (stderr, "WSAStartup(): Kann Winsock nicht initialisieren.\n");
exit (EXIT_FAILURE);
}
int sockfd = socket (AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
perror ("socket()");
}
struct sockaddr_in serv_addr;
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(5000);
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
if(connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(struct sockaddr)) == -1) {
perror("connect()");
}
char buf[1024];
if (recv (sockfd, buf, 1024, 0) == -1) {
perror ("recv()");
}
printf("%s", buf);
printf ("\n");
closesocket(sockfd);
WSACleanup();
return 0;
}
Verbinden kann ich mich jetzt aber der Server gibt
Port: 5000
send(): No error
aus und der Client gibt
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ·
ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ZZ· ☻
aus.
Wo liegt hier der Fehler? Kann mir bitte jemand helfen.
LG
Namensloser