C 소켓 프로그래밍에서 포트를 입력하지 않은 경우의 기본 포트 번호를 설정하려고합니다. 아무도 내가 이것을 어떻게 할 수 있는지 안다? 시도에서 세분화 오류가 계속 발생합니다.C 소켓 프로그래밍 없음 포트가 입력되었습니다.
코드 :! 나는 12345는 argc = 2에 기본 설정했지만, 나는 세그먼트 오류를 얻을 수
#define PORT 12345
int main(int argc, char *argv[]) {
/* Thread and thread attributes */
pthread_t client_thread;
pthread_attr_t attr;
int sockfd, new_fd; /* listen on sock_fd, new connection on new_fd */
struct sockaddr_in my_addr; /* my address information */
struct sockaddr_in their_addr; /* connector's address information */
socklen_t sin_size;
int i=0;
/* Get port number for server to listen on */
if (argc != 2) {
fprintf(stderr,"usage: client port_number\n");
exit(1);
}
/* generate the socket */
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror("socket");
exit(1);
}
/* generate the end point */
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(atoi(argv[1]));
my_addr.sin_addr.s_addr = INADDR_ANY;
. 어떤 도움을 주시면 감사하겠습니다!
기본값을 설정하는 코드를 표시하면 해결하도록 도와 줄 수 있습니다. – Barmar
"* argc! = 2 * 일 때 기본값을 12345로 설정해 보았습니다."어디에서? – alk