アプリ版:「スタンプのみでお礼する」機能のリリースについて

C言語でクライアントとサーバのプログラムを作りたいのですが、かなりの初心者なので、とりあえず練習用として、クライアント側に整数を入力すると、サーバ側でその整数を二乗して、結果をクライアント側に返すという簡単なプログラムを作ろうと思いました。
ソケットの作成、通信ドメインの指定等は、参考書を見ながら(というか、ほとんど丸写しみたいな感じなんですが…)、なんとかできたんですが、sendとrecvで整数を送受信するにはどうすればいいのかが分かりません。
私が持っている参考書には、

int send(SOCKETS const char FAR *buf int len int flags);
int recv(SOCKETS char FAR *buf int len int flags);

とあるのですが、const char FAR *buf、int len、char FAR *bufのところがよく分からないのです。
例えば、a=1000を送信したい場合、aはchar型ではないのでsendでは送れないのですか?
ほんと初心者ですいませんが、どなたか教えてください。
よろしくお願いします。

A 回答 (1件)

char=文字と思っているからわかりにくいのだと思います。


char*はバイト配列の先頭ポインタだと思ってください。
例えばint a=1000を送りたいなら

buf には (char*)&a
※aをアドレス(void*)に変換してさらにchar*にキャスト
lenにはsizeof(int)が入ります。
※intの長さ(普通4バイト)
    • good
    • 1
この回答へのお礼

回答どおりに書き直して見るときちんと動作しました。
ありがとうございました。

お礼日時:2004/11/18 09:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!