TCP kliens probléma. Ez jó így?
Találtam egy TCP kliens kódot linuxra. Ezt így alakítottam át widowsosra. Lefordul, de itt kilép: if (argc != 2)
Tehát a kód:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <winsock.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char**argv)
{
int sockfd,n;
struct sockaddr_in servaddr,cliaddr;
char sendline[1000];
char recvline[1000];
WSADATA wsaData;
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0)
{
fprintf(stderr, "WSAStartup failed.\n");
exit(1);
}
if (argc != 2)
{
printf("usage: client <IP address>\n");
exit(1);
}
sockfd=socket(AF_INET,SOCK_STREAM, 0);
memcpy(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr=inet_addr(argv[1]);
servaddr.sin_port=htons(32000);
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
while (fgets(sendline, 10000,stdin) != NULL)
{
sendto(sockfd,sendline,strlen(sendline),0, (struct sockaddr *)&servaddr,sizeof(servaddr));
n=recvfrom(sockfd,recvline,10000,0,NULL,NULL);
recvline[n]=0;
fputs(recvline,stdout);
}
WSACleanup();
}
Tehát azt látom, hogy paraméteresen kell indítani. De hogy? pl.: client.exe szerverip
Ha nem érted mit csinál a kód, akkor hogy akarod bármibe is átírni?
Azért lép ki az említett helyen, mert 1 argomentumot vár, mert azt használja fel IP cím ként.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!