2013-01-22 5 views
1

자바 스크립트가 시스템 포트에 액세스 할 수 있습니까? 예, 자바 스크립트에서 데이터를 보낼 수있는 서버 (TCP/UDP)를 작성할 수 있습니까?자바 스크립트 포트 액세스

+1

자바 스크립트는 웹 브라우저에서 실행되거나 예를 들어 실행 중입니다. [node.js] (http://nodejs.org/) 또는 유사합니까? –

+0

자바 스크립트가 웹 브라우저에서 실행 중입니다. –

답변

2

Node.js을 요구하지 않는다고 가정 해 봅시다.

C로 WebSocket 서버를 작성하고 JavaScript를 연결할 수 있습니다. 이미 많은 구현이 있으므로 직접 작성하지 않아도됩니다.

당신이 당신의 서버를 시작하고하여 자바 스크립트에서 연결할 수있는 특정 호스트 이름과 포트에 바인딩

: 예를 들어

var ws = new WebSocket('ws://hostname:port'); 
ws.onopen = function() { 
    console.log('Connected'); 
}; 
ws.onmessage = function() { 
    console.log('New message...'); 
}; 
ws.send('Some message...'); 

, 여기에 하나 http://code.google.com/p/cwebsocket/입니다.

내가 아는 한 WebSocket은 TCP를 사용합니다.

또 다른 옵션은 긴 폴링을 사용하거나 사용하지 않고 HTTP 서버에서 AJAX를 사용하는 것입니다.

+0

쓰기 서버는 프로젝트의 일부이므로 외부 서버를 사용할 수 없습니다. socket(), bind(), listen(), send() 및 receive()와 같은 일반적인 TCP 서버 함수를 사용하여 서버를 코딩 했습니까? –

+0

예, 그렇게 할 수 있습니다. WebSocket 핸드 셰이크가 HTTP를 통해 있기 때문에 HTTP 요청을 구문 분석하면됩니다. http://tools.ietf.org/html/rfc6455 –

+0

예, JavaScript가 가장 쉬운 부분입니다. 서버 구현은 더 복잡 할 것입니다. –

2

"시스템 포트"란 무엇을 의미합니까? 시리얼 포트? AGP 포트? 다른 프로그래밍 언어로 응용 프로그램을 다시 작성합니까? 일반적으로 "시스템 포트"와 같은 용어는 없습니다. 소켓을 말하는 것 같습니다.

이 경우 ....

일종의. javascript를 사용하여 모든 TCP 포트에 연결할 수 있지만 HTTP를 사용하여 해당 포트를 통해서만 통신 할 수 있습니다. 웹 소켓을 통해 통신을 터널링하는 것이 가능하지만 서버 끝의 프록시가 a conventional server에 연결되어야합니다. TCP는 스트림 프로토콜이지만 웹 소켓은 메시지 지향적입니다.

처음부터 자신의 서버를 구현하는 경우 이미 websockets (예 : node.js)에 대해 이해하고있는 것을 기반으로 구축하는 것이 훨씬 쉽습니다.

TCP 연결 설정의 부산물로 DNS 조회를 제외한 UDP를 사용할 수 없습니다.

+0

모두 i 원하는 문자열을 자바 스크립트에서 소켓 포트 (예 : 3001)로 보내고 포트 3001을 수신하는 서버 (코드)에 수신합니다. –

+0

예 - 웹 스택 프록시를 사용하지 않는 한 HTTP 스택을 구현하거나 기존 스택을 사용해야합니다. – symcbean

관련 문제