>웹 프론트엔드 >JS 튜토리얼 >Node.js 서버를 실행하고 XMLHttpRequest를 생성할 때 '오류: EADDRINUSE 수신'이 발생하는 이유는 무엇입니까?

Node.js 서버를 실행하고 XMLHttpRequest를 생성할 때 '오류: EADDRINUSE 수신'이 발생하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-28 06:51:11616검색

Why am I getting

Node.JS에서 "오류: EADDRINUSE 수신" 문제 해결

포트 80에서 서버를 실행하는 동시에 XMLHttpRequest를 시작하려고 할 때, "오류: EADDRINUSE 듣기" 오류가 발생할 수 있습니다. 이 문제는 로컬 시스템이 동일한 포트를 여러 애플리케이션에 할당하려고 시도하여 충돌이 발생할 때 발생합니다.

제공된 서버 스크립트에서:

net.createServer(function (socket) {
    socket.name = socket.remoteAddress + ":"+ socket.remotePort;
    console.log('connection request from: ' + socket.remoteAddress);
    socket.destroy();
  }).listen(options.port);

및 요청:

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function() {
    sys.puts("State: " + this.readyState);

    if (this.readyState == 4) {
        sys.puts("Complete.\nBody length: " + this.responseText.length);
        sys.puts("Body:\n" + this.responseText);
    }
};

xhr.open("GET", "http://mywebsite.com");
xhr.send();

문제는 XMLHttpRequest가 동일한 포트에 액세스하려고 시도하는 동안 포트 80에서 수신 대기하는 서버에 있습니다. 충돌을 해결하려면 서버 또는 XMLHttpRequest에 다른 포트를 사용하는 것을 고려할 수 있습니다.

추가 문제 해결 단계:

  • 다른 애플리케이션이 없는지 확인하세요. 이미 포트 80에서 수신 대기 중입니다.
  • Node.JS와 웹을 다시 시작하세요.
  • 방화벽 설정이 포트를 차단하고 있지 않은지 확인하세요.
  • 필요한 경우 killall -9 node를 사용하여 모든 Node.JS 프로세스를 강제 종료하세요. 그러나 다른 시스템 프로세스도 종료할 수 있으므로 주의해서 사용해야 합니다.

위 내용은 Node.js 서버를 실행하고 XMLHttpRequest를 생성할 때 '오류: EADDRINUSE 수신'이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.