이함수는 다른 소켓으로 메시지를 보내기 위해서 사용된다.
이 함수는 연결지향소켓(TCP)과 그렇지않은 소켓타입(UDP) 모두에
사용가능하다.
s는 메시지를 보내고자 하는 소켓의 지정자이다.
msg는 보내고자 하는 메시지이며,
len는 메시지의 길이이다.
to는 보내고자하는 곳의 주소정보를 가지고
있다. 사실 연결지향이라면 연결된 소켓을 통해서 그냥 쓰기만
하면 됨으로 이 정보는 필요없다(NULL), 그러나 연결지향이 아닌 UDP와
같은 연결일경우 주소구조체를 채워주어야만 제대로 메시지가 전달될
것이다. tolen는 sockaddr 구조체의 크기이다.
flags는 다음중 선택해서 지정할수 있다.
MSG_OOB
oub-of-band
data를 이 개념을 지원하는 소켓으로 보낸다.
MSG_DONTROUTE
패킷을 전송하는데 게이트웨이를 사용하지 않고
직접 연결된 네트워크를 통해서 호스트로 보낸다.
이것은 diagnostic 혹은 routing 프로그램에 의해서만
사용한다.
MSG_DONTWAIT
non-blocking을 가능하게 한다.
MSG_NOSIGNAL
다른 한쪽의 소켓의 연결이 끊겼을때,
소켓으로부터 발생하는 스트림상의 SIGPIPE를
보내지 않도록 요구한다. 그러나 EPIPE에러는 여전히
반환된다.
1장. sendto(2)
소켓을 통해 데이터를 전송한다.
1.1절. 사용법
1.2절. 설명
이함수는 다른 소켓으로 메시지를 보내기 위해서 사용된다. 이 함수는 연결지향소켓(TCP)과 그렇지않은 소켓타입(UDP) 모두에 사용가능하다.
s는 메시지를 보내고자 하는 소켓의 지정자이다.
msg는 보내고자 하는 메시지이며, len는 메시지의 길이이다.
to는 보내고자하는 곳의 주소정보를 가지고 있다. 사실 연결지향이라면 연결된 소켓을 통해서 그냥 쓰기만 하면 됨으로 이 정보는 필요없다(NULL), 그러나 연결지향이 아닌 UDP와 같은 연결일경우 주소구조체를 채워주어야만 제대로 메시지가 전달될 것이다. tolen는 sockaddr 구조체의 크기이다.
flags는 다음중 선택해서 지정할수 있다.
oub-of-band data를 이 개념을 지원하는 소켓으로 보낸다.
패킷을 전송하는데 게이트웨이를 사용하지 않고 직접 연결된 네트워크를 통해서 호스트로 보낸다. 이것은 diagnostic 혹은 routing 프로그램에 의해서만 사용한다.
non-blocking을 가능하게 한다.
다른 한쪽의 소켓의 연결이 끊겼을때, 소켓으로부터 발생하는 스트림상의 SIGPIPE를 보내지 않도록 요구한다. 그러나 EPIPE에러는 여전히 반환된다.
1.3절. 반환값
성공할경우 0을 실패했을경우에는 -1을 반환하며, 적당한 errno 값을 설정한다.
1.4절. 에러
s 가 유효한 기술자가 아니다.
s 가 소켓이 아닌 파일일경우
실제하지 않는 사용자 공간주소가 매개변수로 지정되었다.
신호발생으로 인하여 인터럽트가 걸렸다.
연결된 소켓이 깨졌다. MSG_NOSIGNAL이 설정되어 있지 않을경우 프로세스는 SIGPIPE신호를 받게 된다.
1.5절. 예제
Recent Posts
Archive Posts
Tags