예를 통해 서버 및 클라이언트를 만들려고합니다. 예를 온라인으로 보았지만 똑같이 만들려고했으나 제대로 작동하지 않았습니다. 이유를 이해하십시오.서버 클라이언트 송수신이 작동하지 않습니다.
서버
int main(int argc, char *argv[])
{
int socket_fd, cc, fsize;
struct sockaddr_in s_in, from;
struct { char head; u_long body; char tail;} msg;
char name[10];
socket_fd = socket (AF_INET, SOCK_DGRAM, 0);
bzero((char *) &s_in, sizeof(s_in));
s_in.sin_family = (short)AF_INET;
s_in.sin_addr.s_addr = htonl(INADDR_ANY);
s_in.sin_port = htons((u_short)0x3333);
fflush(stdout);
bind(socket_fd, (struct sockaddr *)&s_in, sizeof(s_in));
for(;;) {
fsize = sizeof(from);
recvfrom(socket_fd,name,sizeof(name),0,(struct sockaddr *)&from,&fsize);
printf("Got data : %s",name);
fflush(stdout);
}
return 0;
}
는 클라이언트
int main(int argc, char *argv[])
{
int socket_fd; //creating 1 int
struct sockaddr_in dest;
struct hostent *hostptr;
struct { char head; u_long body; char tail; } msgbuf;
char name[10];
socket_fd = socket (AF_INET, SOCK_DGRAM, 0);
bzero((char *) &dest, sizeof(dest));
hostptr = gethostbyname(argv[1]);
dest.sin_family = (short) AF_INET;
bcopy(hostptr->h_addr, (char *)&dest.sin_addr,hostptr->h_length);
dest.sin_port = htons((u_short)0x3333);
printf("Enter your name: ");
scanf("%s",name);
printf("%s",name);
sendto(socket_fd,name,sizeof(name),0,(struct sockaddr *)&dest,sizeof(dest));
return 0;
}
누군가가 내 문제를 설명 할 수 있습니까?
를 사용
는 또한
bzero
및bcopy
이되지 않습니다 점에 유의 당신이 그리워 저거'*/'/ *'의 말에 그들은 당신이 이것을해야한다고 말하십시오' – David그것의 문제가 아닙니다 잘 복사하지 못했습니다. – user3061943
네,하지만 올바른 코드를 위해 추가하는 것이 좋습니다. – David