winsock 2 API 를 사용해서 프로그램을 만드는데,
여기저기서 참고자료도 찾고, 책도 한권 사고해서 이제 막 프로그래밍에
들어가려고 오늘 델파이를 실행했는데, "얼래? --;" 하면서 멈출 수밖에
없었습니다. socket 프로그래밍을 하기위해 사용하는 구조체들이
문제인데, 예를 들어 Berkley socket 을 쓰면서 C로 코딩할때
sockaddr_in 구조체를 사용하기위해
struct sockaddr_in addr;
식으로 쓰던 것을 winsock 에서는
SOCKADDR_IN addr;
이라고 쓰는데요, 구조체가 class 로 정의되어서 이따시로 써주게
된거지요. 그렇게 알고 에디터에서 sockaddr_in 을 정의하려는데 좀
하다보니까 제가 바보짓을 하고있지뭐에요. 델파이 에디터에서 C 의
변수정의를 해버렸습니다. 그래서 어찌어찌하다보니 sockaddr 구조체는
TSockAddr 이라는 클래스로 정의 되어있다는 걸 알았고, 또 TMulticast
라는 클래스도 델파이에 있는 것같은데 이런 구조체는 berkley socket엔
없거든요. 그밖에 TWSADATA같은 것도 있는 것같은데요, 이렇게 다르게
정의되는 것들에대한 참고자료가 있어야할 것같습니다. 제가 찾은 것들은
다 C 나 C++로 코드 예시를 하고있어 pascal에는 어떤 클래스를 써서
정의되는지 알길이 없네요.
조언 부탁합니다.
> winsock 2 API 를 사용해서 프로그램을 만드는데,
> 여기저기서 참고자료도 찾고, 책도 한권 사고해서 이제 막 프로그래밍에
> 들어가려고 오늘 델파이를 실행했는데, "얼래? --;" 하면서 멈출 수밖에
> 없었습니다. socket 프로그래밍을 하기위해 사용하는 구조체들이
> 문제인데, 예를 들어 Berkley socket 을 쓰면서 C로 코딩할때
> sockaddr_in 구조체를 사용하기위해
>
> struct sockaddr_in addr;
>
> 식으로 쓰던 것을 winsock 에서는
>
> SOCKADDR_IN addr;
>
> 이라고 쓰는데요, 구조체가 class 로 정의되어서 이따시로 써주게
> 된거지요. 그렇게 알고 에디터에서 sockaddr_in 을 정의하려는데 좀
> 하다보니까 제가 바보짓을 하고있지뭐에요. 델파이 에디터에서 C 의
> 변수정의를 해버렸습니다. 그래서 어찌어찌하다보니 sockaddr 구조체는
> TSockAddr 이라는 클래스로 정의 되어있다는 걸 알았고, 또 TMulticast
> 라는 클래스도 델파이에 있는 것같은데 이런 구조체는 berkley socket엔
> 없거든요. 그밖에 TWSADATA같은 것도 있는 것같은데요, 이렇게 다르게
> 정의되는 것들에대한 참고자료가 있어야할 것같습니다. 제가 찾은 것들은
> 다 C 나 C++로 코드 예시를 하고있어 pascal에는 어떤 클래스를 써서
> 정의되는지 알길이 없네요.
> 조언 부탁합니다.
>
안녕하세요 김영대입니다
저도 처음에 UNIX C 로 socket programming 하다가
DELPHI 로 오면서 경험했던 일이라...
제가 가지고 있는 socket 자료들의 대부분도 C 입니다
하지만 socket 은 표준화가 잘 되 있어서 타입선언 정도만 약간
다를뿐 다른 부분의 플랫폼에 독립적인면이 많습니다
타입이나 함수의 prototype 선언은 winsock.pas 파일을 참고해보세요