2016-10-03 9 views
1

일부 명령을 lg iptv로 보내고 있습니다. 일부 명령은 같은 :TCP 소켓에서 응답 수신

Socket client = new Socket(AddressFamily.InterNetwork, 
        SocketType.Stream, ProtocolType.Tcp); 

과 내가 연결하고 몇 가지 명령을 보내

Current temperature (Command: d n) 
Checks the inside temperature. 
Transmission 
[d][n][ ][Set ID][ ][Data][Cr] 
Data FF: Check the status 
Acknowledgement 
[n][ ][Set ID][ ][OK/NG][Data][x] 
* Temperature is displayed as a hexadecimal value. 

나는이 코드 라인 TCP 소켓을 만드는 오전. 는 잘 작동하지만 난 코드 줄에 ACK를 수신 할 수 없습니다

data = data + "\r"; 
byte[] bytes = new byte[1024]; 
byte[] msg = Encoding.ASCII.GetBytes(data); 
int bytesSent = user.Send(msg); 
user.ReceiveTimeout = 2000; 
int bytesReceived = user.Receive(bytes); 
data = Encoding.ASCII.GetString(msg, 0, bytesReceived); 

은 내가 MSDN의 예제를 사용하고 다시 아무것도 수신되지. https://msdn.microsoft.com/en-us/library/bew39x2a(v=vs.110).aspx

그 대답을받을 방법이 있습니까? 난 그냥 클라이언트 쪽과 서버 쪽이 해당 TV에 쓸 수 있습니다.

답변

0

수신 거부 할 수 없습니다. 응용 프로그램 수준에 노출되어 있지 않으므로 입니다. TCP 프로토콜은 성공적인 ACK를 수신 할 때까지 패킷을 계속 재전송합니다.

+0

그래서 무엇을 할 수 있습니까? 예를 들자면 나는 그 대답을 받아야합니다. 성공적인 ACK를 받았을 때, 그 ACK로 무엇을합니까? @CodeJoy – Farshad

+0

ACK는 패키지가 제대로 전송되었는지 확인하는 것입니다. 아무 것도받지 못하면. 방화벽이나 뭔가에 의해 발생할 수 있습니다. 코드가 올바르지 않습니다. –

+0

아무런 의미가 없습니까? 나는 회사에서 일하고있다. 그들은 VB에서이 대답을 얻었습니다. 임시 코드 @ CodeJoy를 받으려면 어떻게해야합니까? – Farshad