#include <sys/socket.h> int getsockname(int s, struct sockaddr *name, socklen_t *namelen);
#include <sys/types.h> #include <unistd.h> #include <fcntl.h> #include <stdlib.h> #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int main() { int sockfd; int client_sockfd; int client_len; int state; struct sockaddr_in clientaddr, serveraddr, myaddr,test; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("socket error : "); exit(0); } bzero(&serveraddr, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); serveraddr.sin_port = htons(4444); state = bind(sockfd , (struct sockaddr *)&serveraddr, sizeof(serveraddr)); if (state == -1) { perror("bind error : "); exit(0); } state = listen(sockfd, 5); if (state == -1) { perror("listen error : "); exit(0); } client_len = sizeof(clientaddr); client_sockfd = accept(sockfd, (struct sockaddr *)&clientaddr, &client_len); // 로컬 소켓의 정보를 가져온다. // 언어온 정보는 myaddr 에 채워진다. getsockname(client_sockfd, (struct sockaddr *)&myaddr, &client_len); // 얻어온 정보를 출력한다. printf("Port : %d\n", ntohs(myaddr.sin_port)); printf("address : %s\n", inet_ntoa(myaddr.sin_addr)); close(client_sockfd); close>(sockfd); return 1; }
Copyrights © - Joinc, All Rights Reserved. Inherited From - Yundream Rebranded By - Joonphil
Contents
getsockname
사용 법
설명
반환값
에러
예제
관련 글
Recent Posts
Archive Posts
Tags