소켓을 이용한 프로그래밍은 어떻게하는거죠??ㅜㅜ

didiradi의 이미지

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
 
int main(void)
{
    pid_t pid;
    int i,t[50];
    char str[5][50];
    for(i = 0; i<50;i++)
    {
        scanf("%d %s",&t[i],str[i]);
        pid=fork();
 
        if(pid < 0)
        {
            printf("fork not available\n");
        }
        else if(pid == 0) // child
        {
            sleep(t[i]);
            printf("%s\n",str[i]);
            exit(0);
        }
        else
        {
//            wait(NULL);
//            printf("Parent\n");
        }
    }
    return 0;
}

입력을 10 hello
8 hi
4 nono
이렇게 하였을때
출력이 nono
hi
hello 앞에 있는 시간에 따라 먼저 출력되는 프로그램입니다. 이것은 쓰레드로 구성한것인데요
soket과 fork()을 이용하여 똑같은 프로그램을 짜려고하는데 어떻게 수정해야되죠?ㅜㅜ

shint의 이미지

fork를 왜 사용하는지랑
소켓을 왜 사용하는지에 대한 질문을 다시 하셔야 할거 같습니다.

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
 
int main(void)
{
    pid_t pid;
    int i,t[50];
    char str[5][50];
    for(i = 0; i<2;i++)
    {
		printf("\n");
		printf("input : ");
        scanf("%d %s",&t[i],str[i]);
 
        pid=fork();
		printf("pid : %d\n", pid);
 
        if(pid < 0)
        {
            printf("fork not available\n");
        }
        else if(pid == 0) // child
        {
//            sleep(t[i]);
            printf("%s\n",str[i]);
            exit(0);
        }
        else
        {
            wait(NULL);
            printf("Parent\n");
        }
    }
 
	printf("\n");
	printf("result ---------------\n");
    for(i = 2-1; i>=0; i--)
    {
        printf("%d %s\n",t[i],str[i]);
	}
	system("pause");
    return 0;
}

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com