- ベストアンサー
2バイトの文字データの送信方法とは?
- 2バイト分のデータを送信する方法を教えてください。
- ソースコードを含めた具体的な手順を教えてください。
- 2バイトの文字データを送信する際に注意すべき点はありますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>SOCKET sTest; >send(sTest,data,sizeof(data),0); socketの初期化やconnectしていますか? send()がエラー返していませんか? >SOCKET sTest; >int hrecv; >char data[SIZE]; >while(1){ >recv(sTest,data,SIZE,0); >if(hrecv == 0){ >colsesocket(sTest); こちらもsocketの初期化は正しく行っていますか? ポートの割り当てやacceptなど必要ですし、送信側が2バイトずつ送信したからと言って受信側のrecv()でも同じように受信できるとは限らない点は理解していますか? hrecvが書き換わっていないようですが問題ありませんか? recv()の戻り値を受けているものと思われますが…
その他の回答 (1)
- asuncion
- ベストアンサー率33% (2127/6289)
> 送信しようと思っている どんな環境で、どこからどこへ送信しようとしていますか? > なかなかうまくいきません。 何をしたときにどんな風にうまくいきませんか? コンパイルエラーですか? 実行時のエラーですか? どんなエラーメッセージが出ますか? > char data[2] = 2; この初期化の意味を教えてください。 > send(sTest,data,sizeof(data),0); > recv(sTest,data,SIZE,0); > colsesocket(sTest); これらの関数は自作ですか? もともと用意してあるものですか? colsesocketのスペルは正しいですか? closesocketではないですか?
補足
分かりにくい説明ですいません。 >どんな環境で、どこからどこへ送信しようとしていますか? クライアントからサーバへ2バイトのデータを送信したいのです。 >何をしたときにどんな風にうまくいきませんか? クライアントからサーバへデータを送信するために クライアント側に送信する関数のsendを設置してsendでデータを送りデータを受信するためにサーバ側にrecv関数を設置し、データを受信するようにコードを書いたのですが送信もされず受信もされません。 >コンパイルエラーですか? 実行時のエラーですか? エラーはでません。 >char data[2] = 2; ↑間違いです。正しいのは char data[2]= "2"; です。 colsesocketは打ち間違いです。 すいません。
お礼
指摘された点を直してみたところ、送受信できました。 ありがとうございます!