2014-03-25 67 views
8

가상 직렬 포트에 쓸 수 있고 네트워크를 통해 원격 클라이언트에서 동일한 포트를 통해 데이터를 수신 할 수 있어야하는 응용 프로그램을 개발 중입니다.TCP를 통한 가상 직렬 포트 연결 만들기

응용 프로그램은 Linux 서버에서 실행됩니다. 시리얼 포트를 처음 사용하는 것에 익숙하며이 주제에 대해 몇 가지 질문이 있습니다.

클라이언트

클라이언트는 서버에 TCP 연결을 설정할 수 있습니다. 클라이언트를 설정할 때 서버의 IP 주소, TCP 포트 (일반적으로 8080) 및 가상 COM 포트를 제공해야합니다.

그러면 클라이언트가 자동으로 서버에 연결을 시도합니다.

서버

서버는 가상 COM 포트, 우리는 클라이언트의 설정 (예를 들어, COM1)에서 설정 한 것과 같은있다. 서버의 응용 프로그램이이 포트에 데이터를 쓸 때 tcp를 통해 연결된 모든 클라이언트에 데이터를 보내야합니다. 클라이언트의 응답은 TCP를 통해 가상 직렬 포트를 통해 읽을 수있는 서버로 다시 전송됩니다. 창에

질문

나는 대부분의 작업을했던 가상 직렬 포트 커넥터 http://www.eterlogic.com/Products.VSPE.html을 사용했다. 그러나 리눅스 머신에서이 문제를 해결하고 싶습니다.

내 질문에, 가상 직렬 포트가 연결되어 있고 TCP를 통해이 포트를 통해 수신 클라이언트로 데이터를 보내고받을 수있는 TCP 서버를 어떻게 만듭니 까?

답변

16

시도 socat. 가능한 시나리오 : 그 반대의 경우도 마찬가지 192.168.254.254:8080로 전달 될 것이다는/dev/virtualcom0에 기록 될 것이다, 모든 있도록

socat pty,link=/dev/virtualcom0,raw tcp:192.168.254.254:8080& 

socat는 192.168.254.254:8080에 TCP 연결을 생성합니다.

또 다른 방법 (예 http://www.hw-group.com/products/hw_vsp/index_en.html 단일 포트 버전) 윈도우 측에서 측면과 RFC2217 드라이버를 절단 리눅스에 ser2net를 통해 RFC2217을 사용하는 것입니다. http://pyserial.sourceforge.net/을 ser2net과 작동 시키려고 할 수도 있습니다.

+0

감사합니다. 가상 COM 포트가 생성됩니까? 나는 이것이 TCP 서버에 대한 기존의 것을 연결한다고 생각한다. 그러나, 나는 이미 당신이 여기서 한 말을했다. http://superuser.com/questions/733552/how-to-send-message-to-virtual-serial-port-created-with-socat 내 문제는 내가 쓸 수 없다는 것이다. COM 포트. –

+0

'socat'은'/ dev/virtualcom0'을 생성 할 것이므로 가상 포트입니다. 저는 [VScom NET-CAN 110] (http://www.visionsystems.de/produkte/422.html) 장치로 socat을 사용하고 있으며 매력처럼 작동하고 있습니다. 지침은 [여기] (http://faq.visionsystems.de/index.php?action = artikel & cat = 8 & id = 71 & artlang = ko & highlight = socketcan). – yegorich

+0

그리고 virtualcom0이 Windows에있을 것이라고 말할 수 있습니까? 가상 COM 포트가있는 Windows 클라이언트에서 Linux로 연결하려면 windwos, COM1, COM2에서 무엇을 선택해야합니까? –

1

이 소프트웨어는 TCP http://www.serial-com-port.com/

내가 네트워크를 통해 가상 직렬 통신을 만들기 위해 그것을 사용을 통해 서버 및 클라이언트 연결을 설정하는 데 도움이 될 것입니다,하지만 난 컴퓨터의 실제 RS232 포트를 가지고있다. 따라서 네트워크를 통해 데이터를 전송하기 만하면됩니다. 서버에 가상 COM을 생성해야하는 경우 가상 직렬 포트 드라이버를 사용하십시오.