bingo88
PCGH-Community-Veteran(in)
AW: [C] Socket für TCP/UDP Übertragung programmieren
Mir ist grade noch was anderes aufgefallen:
Beim ersten Teil ist size nicht initialisiert (kompilier mal mit dem Argument -Wall, das zeigt alle Warnungen an, u. a. nichtinitialsierte Variablen).
Beim zweiten Teil ist die if-Abfrage falsch. Du kannst in C Strings nicht mit "==" vergleichen. Du musst dafür z. B. die strcmp aus der string.h nutzen
Beim dritten Teil kommt mir das "struct in_addr *s_addr" komisch vor. Das muss sicher "inet_aton(argv[3], &server_ip)" heißen.
Edit: Ah, wurde schon entdeckt ^^
Abgesehen davon, wenn du mit argv arbeitest, solltest du besser argc vorher kontrollieren, ob du überhaupt genügend Argumente hast, beispielsweise
Mir ist grade noch was anderes aufgefallen:
Code:
/* Parameter: UDP/TCP, Client, Server-IPv4-Adresse, Port */
/* Parameter: UDP/TCP, Server, Port */
int main(int argc, char *argv[]) {
[B]int size, port, server_ip;
char *data = (char*)malloc(size * sizeof(char));[/B] [B]/* 1 */[/B]
[B] if (argv[1]=="TCP" && argv[2]=="Client")[/B] { [B]/* 2 */[/B]
server_ip = inet_aton(argv[3], [B]struct in_addr *s_addr[/B]); [B]/* 3 */[/B]
port = atoi(argv[4]);
printf("Please enter message: ");
scanf("%s", &data);
tcp_client(data, port, server_ip);
}
return 0;
}
Beim zweiten Teil ist die if-Abfrage falsch. Du kannst in C Strings nicht mit "==" vergleichen. Du musst dafür z. B. die strcmp aus der string.h nutzen
Code:
if (strcmp(argv[1], "TCP") == 0)
{
/* argv[1] = TCP */
}
Edit: Ah, wurde schon entdeckt ^^
Abgesehen davon, wenn du mit argv arbeitest, solltest du besser argc vorher kontrollieren, ob du überhaupt genügend Argumente hast, beispielsweise
Code:
if (argc < 3)
{
printf("Fehler: Zu wenig Argumente.\n");
return -1; /* exit */
}
) musst do noch die stdlib.h includen.
weiter so, sonen krempel wollt ich mir auch ma irgendwann beibringen >< klingt ja alles urst verwurschtelt xD da kannst du mir dann mal helfen boss ^^
.


und noch ne frage: bei älteren games gabs ja ne exe für dedicated server. da hab ich auch öfter ma nen server aufm eignen rechner gestartet und bin mit der (zweiten exe) client exe dann drauf gejoined - und andre mittels hamachi hinterher usw. is das hiermit auch möglich?