2016-10-03 7 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

このackを受け取る方法はありますか? 私はちょうどクライアント側とサーバー側がそのテレビに書き込むことができます。

答えて

0

ackを受け取ることはできません。アプリケーションレベルに公開されていないため、 です。 TCPプロトコルは、正常なACKを受信するまでパケットを再送信し続けます。

+0

どうすればいいですか?私はそのような感情を受け取る必要があります。 ACKを受信すると、そのACKで何が行われますか? @CodeJoy – Farshad

+0

ACKは、パッケージが正しく転送されたことを確認することです。あなたが何も受け取っていない場合。それはあなたのファイアウォールによって引き起こされるかもしれませんまたは何かがあなたのコードの右ではありません –

+0

あなたは方法がないという意味ですか? 私は会社で働いています。彼らはVBでこれを受け取りました。 temp @ CodeJoyを受け取るために、この状況で何ができるのですか – Farshad

関連する問題