source

창에서 sys/socket.h 기능 사용

lovecheck 2023. 10. 9. 23:23
반응형

창에서 sys/socket.h 기능 사용

윈도우 내 socket.h 기능을 활용하려고 합니다.기본적으로 현재 https://beej.us/guide/bgnet/html/multi/clientserver.html#datagram 에서 샘플 코드를 보고 있습니다.socket.h가 유닉스 함수라는 것을 알고 있습니다 -- 이 샘플 코드를 컴파일하는 동안 해당 환경을 쉽게 에뮬레이트할 수 있는 방법이 없을까요?다른 IDE/Compiler가 변경되는 사항이 있습니까?

그렇지 않으면 가상화된 Linux 환경을 활용해야 할 것으로 생각됩니다. 코드가 UNIX 환경에서 실행될 가능성이 높기 때문에 어쨌든 최선일 수 있습니다.

감사해요.

두 가지 옵션이 있습니다.

  1. 시그윈(Unix 에뮬레이션 라이브러리)을 사용합니다.
  2. 포트에서 윈스톡(Windows 표준 라이브러리).

Cygwin: 유닉스 소스를 대부분 그대로 컴파일할 수 있지만 Cygwin 에뮬레이션 라이브러리에 연결할 수 있습니다.이것은 두 가지 의미를 갖는데, 네트워크뿐만 아니라 일반적인 성능도 아마도 최적보다 낮을 것입니다. 그리고 대상 환경에 Cygwin DLL이 (실행 시간에) 설치되어 있어야 합니다.

Winsock: 교체해야 합니다.sys/socket.h(BSD 소켓 라이브러리, TCP/IP 스택용 UNIX 표준):winsock2.h, 코드의 일부를 다시 쓰는 거죠. 많지는 않지만 일부는요.

유용한 정보와 함께 몇 가지 관련 질문:

winsock과 BSD 소켓 구현의 차이

Cygwin[Windows의 Linux]에 대한 몇 가지 문제(소켓, 스레드, 기타 프로그래밍 및 셸 문제)

윈스톡의 예?

윈스톡 도서관을 찾으시는 것 같습니다.

BSD 표준이 제공하는 플랫폼 간 네트워크 응용 프로그램을 작성하는 것은 쉽지 않습니다.물론 효과는 있겠지만 필요하다면 ioctl을 ioctl 소켓(창문)으로 교체하는 것과 같은 몇 가지 교체를 해야 할 것입니다.다른 점이 더 많습니다.

이런 추한 차이를 감추고 통일된 의사소통 방식을 제공하는 도서관을 이용하라는 게 제 조언입니다.저는 개인적으로 ACE를 씁니다.서버와 클라이언트를 만드는 방법을 보여주는 많은 예가 있습니다.샘플을 복사해서 거기서 어떻게 하는지 확인해보세요.메일 목록도 큰 도움이 됩니다(PRF를 사용하는 것을 잊지 마십시오). 문제 보고서 양식은 원본 트리를 참조하십시오.당신은 더 많은 정보를 얻기 위해 그 책들을 빌릴 수 있습니다.참고 사항: ACE를 사용하면 소켓, setsockopt, ioctl 등의 ACE 포장지 기능을 사용할 수 있으므로 작동하지 않을 것을 걱정하지 않아도 됩니다.불행히도 이것은 항상 선택사항은 아닌 라이브러리 종속성을 추가합니다.하지만 ACE는 더 강력한 기능을 가지고 있기 때문에 여러분이 발견하면 좋아할 것입니다.힌트: 리액터, 프록터.

언급URL : https://stackoverflow.com/questions/2952733/using-sys-socket-h-functions-on-windows

반응형