어떻게 c 언어 에서 socket 을 닫 습 니까?
1.종료()
#include<sys/socket.h>
int shutdown(int sockfd,int how);
how 방식 은 세 가지 가 있 습 니 다.SHUT_RD(0):sockfd 의 읽 기 기능 을 닫 습 니 다.이 옵션 은 sockfd 의 읽 기 동작 을 허용 하지 않 습 니 다.받 아들 일 수 없다.
SHUT_WR(1):sockfd 의 쓰기 기능 을 닫 습 니 다.이 옵션 을 사용 하면 sockfd 의 쓰기 동작 을 허용 하지 않 습 니 다.발송 불가.
SHUT_RDWR(2):sockfd 의 읽 기와 쓰기 기능 을 닫 습 니 다.보 내 거나 받 아들 일 수 없습니다(close()와 같 습 니 다).
성공 하면 0,오류 반환-1,오류 코드 errno:EBADF 는 sockfd 가 유효한 설명자 가 아니 라 는 것 을 표시 합 니 다.ENOTCONN 은 sockfd 가 연결 되 지 않 았 음 을 표시 합 니 다.ENOTSOCK 은 sockfd 가 socket 설명자 가 아 닌 파일 설명자 임 을 나타 낸다.
2.close()
#include<unistd.h>
int close(int fd);
읽 기와 쓰기 닫 기.그것 은 소켓 에 있 는 더 많은 데이터 의 읽 기와 쓰 기 를 방지 할 것 이다.다른 쪽 에서 소켓 을 읽 고 쓰 려 는 모든 시 도 는 잘못된 정 보 를 되 돌려 줄 것 이다.성공 하면 0,오류 반환-1,오류 코드 errno:EBADF 는 fd 가 유효한 설명자 가 아니 라 는 것 을 표시 합 니 다.EINTR 은 close 함수 가 신호 에 의 해 중단 되 었 음 을 표시 합 니 다.EIO 는 IO 오 류 를 표시 합 니 다.
구별:
1.shutdown()은 소켓 을 어떻게 닫 는 지 에 있어 서 약간의 제어 가 있 습 니 다.shutdown 은 단 방향 으로 닫 을 수 있 습 니 다.Close 는 안 됩 니 다.
2.다 중 스 레 드 공유/같은 Socket 을 호출 할 때 Close 는 1 만 줄 이 고 0 으로 줄 여야 Socket 을 진정 으로 닫 을 수 있 습 니 다.
shutdown 은 얼마나 많은 스 레 드 가 사용 되 는 지 신경 쓰 지 않 고 socket 을 강제로 닫 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.