캡쳐 중에 TCP 포트 (# 123)로 데이터를 보내고 tcp와 함께 aC# 코드를 사용했기 때문에 신호 캡처 (vilistus)를 위해 가져온 장치에 문제가 있습니다. listener가 동일한 포트에서 데이터를 수신하지만 프로그램이 accepttcpclient()
명령 행에서 차단되고 데이터가 수신되지 않습니다.tcp 포트에서 데이터 수신
답변
클라이언트가 수신기에 연결하지 않은 것처럼 들립니다. TcpListener에서 AcceptTcpClient를 호출하면 응용 프로그램이 클라이언트가 연결하는 것을 기다리고 거기에서 멈추어 서 문제가되는 것 같습니다.
BeginAcceptTcpClient를 실행하여 응용 프로그램을 해제하고 클라이언트를 기다리는 동안 프로그램을 계속 실행할 수있게하여이 문제를 해결할 수 있습니다. 클라이언트가 다음 대리자가 호출됩니다 연결하고하면 다음 등의 데이터를 읽고, 클라이언트 처리를 시작할 수 있습니다 예를 들어 : 클라이언트는 다음 클라이언트에 액세스 할 수있는 자유를 갖게 될 것이다 올바르게 연결 제공
class Comms
{
TcpListener listener;
TcpClient client;
// Starts listening for a tcp client
public void StartListener()
{
listener = new TcpListener(IPAddress.Any, 123);
listener.BeginAcceptTcpClient(new AsyncCallback(ClientCallback), listener);
}
// Callback for when a client connects on the port
void ClientCallback(IAsyncResult result)
{
listener = (TcpListener)result.AsyncState;
try
{
client = listener.EndAcceptTcpClient(result);
// From here you can access the stream etc and read data
}
catch (IOException e)
{
// Handle any exceptions here
}
}
}
는 NetworkStream 및 그런 다음 데이터를 읽고 클라이언트에 씁니다. 당신이 볼 수있는 빠른 참조와 예제가 있습니다. http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.beginaccepttcpclient.aspx
데이터 읽기 및 쓰기와 관련하여 클라이언트의 NetworkStream 읽기 및 쓰기 기능과 비슷한 잠금 문제가 있습니다.
이는 NetworkStream의 ReadTimeout 및 WriteTimeout 속성을 설정하여, 기능을 읽기 위해 시간 제한을 설정하고 쓰기 :이 문제에 대한 두 가지 가능한 솔루션을 가지고있다.
BeginAcceptTcpClient와 비슷한 콜백 메서드를 사용하려면 NetworkStream에있는 BeginRead 및 BeginWrite 함수를 사용하십시오.
희망이이 장치가 클라이언트되고 있다는 이상한 소리
을하는 데 도움이됩니다. 포트 123의 장치에 tcpClient.Connect()
을 사용하면 안됩니까?
왜?
- 서버에서 실행중인 서버를 어떻게 알아야합니까? 영원히 연결하려고 할 수는 없습니다.
- PC에서 응용 프로그램에 포트 123이 사용 가능하다는 것을 장치가 어떻게 알 수 있습니까?
- 1. 직렬 포트에서 바이트 수신
- 2. 여러 포트에서 서버 수신 대기 [Java]
- 3. Android 에뮬레이터 : 포트에서 에뮬레이터에서 보낸 SMS 수신
- 4. TCP 포트에서 서버를 모니터링하는 가장 좋은 방법입니다.
- 5. SerialPort.ReadExisting()을 사용하여 직렬 포트에서 잘못된 데이터 수신
- 6. 테이블 데이터베이스에 tcp 데이터 저장
- 7. ICMP 소켓에서 데이터 수신
- 8. node.js의 같은 포트에서 수신 및 요청하기
- 9. 원격 포트에서 수신 대기중인 SQL Server를 중지하십시오.
- 10. 파이썬 TCP 수신 기능을 보내십시오
- 11. COM 포트에서 데이터 읽기
- 12. 직렬 포트에서 데이터 읽기
- 13. 포트에서 데이터 읽기 관련
- 14. 시리얼 포트에서 플롯 데이터
- 15. tcp/ip 소켓 용 수신 버퍼 크기
- 16. 특정 포트에서 수신 대기하고 TCP 연결 (비 https)을 수락하는 서블릿을 만드는 방법
- 17. 지연 수신 데이터 수신 차단
- 18. 직렬 포트에서 이진 데이터 읽기
- 19. Perl - 다른 포트에서 수신 대기하는 다중 HTTP 서버 만들기
- 20. 특정 소켓에 대한 TCP 수신 창을 늘리십시오.
- 21. 다중 스레드 TCP 서버 수신 대기
- 22. node.js - TCP 서버와 통신합니다. (데이터 == JSON)
- 23. TCP 포트 바인드 방법
- 24. C에서 Linux의 직렬 포트에서 데이터 지우기?
- 25. 왜 tcp 원격 클라이언트가 청취해야합니까?
- 26. Socket.io는 여러 포트에서 수신 대기 할 수 있습니까?
- 27. 두 개의 UDP 서버가 같은 포트에서 수신 대기하도록 하시겠습니까?
- 28. 모든 포트에서 브로드 캐스트 패킷을 수신 대기하는 방법은 무엇입니까?
- 29. MantaRay가 동일한 포트에서 3 개의 TCP 연결을 엽니 다.
- 30. Linux : 특정 포트에서 TCP 패킷을 보내는 방법은 무엇입니까?
기기에서 데이터를 전송하고 있습니까? Wireshark 또는 다른 네트워크 분석 도구를 사용하여 네트워크를 통해 어떤 일이 일어나는지보십시오. – Brandon