簡易版smtpクライアント(メールアプリ送信のみ)を作成する課題なのですが、下の処理は具体的に何をしているのでしょうか?
よろしくお願いします。
__soc : ソケットディスクリプタ
__froMail : 配信メールアドレスポインタ
__toMail : 宛先メールアドレスメールのポインタ
戻り値
Success : 0
Error :-1 とする
int data_action(int __soc, char *__fromMail, char *__toMail){
char sendBuf[BUFSIZE], recvBuf[BUFSIZE], sendBuf1[BUFSIZE], recvBuf1[BUFSIZE], sendBuf2[BUFSIZE], recvBuf2[BUFSIZE], sendBuf3[BUFSIZE], recvBuf3[BUFSIZE];
char tmp[BUFSIZE];
int resCode;
int sendLen, sendLen1, recvLen,recvLen1,dataLen; int fromLen,toLen;
char data[BUFSIZE],data1[BUFSIZE];
int sendLen2,recvLen2,sendLen3,recvLen3;
sendLen = sprintf(sendBuf, "%s%s",DATA, ENTER);
printf("===>%s", sendBuf);
send(__soc, sendBuf, sendLen, 0);
recvLen = recv(__soc, recvBuf, BUFSIZE, 0); recvBuf[recvLen] = '\0';
printf("<=== %s", recvBuf);
printf("\n*メッセージ本文の件名本文の文字列バッファへのポインタ件名(Subject)を入力:\n");
fgets(data, BUFSIZE, stdin);
sendLen1 = sprintf(sendBuf1,"Subject: %sFrom: %s%sTo: %s%s",data,__fromMail,ENTER,__toMail,ENTER);
send(__soc, sendBuf1, sendLen1, 0);
printf("\n*メッセージ本文の件名の文字列バッファへのポインタ本文を入力:(書き終わったら<ENTER>.<ENTER>を入力)\n");
while(1){
fgets(data1, BUFSIZE, stdin); if(strncmp(data1,".",1)==0) {
sendLen3 = sprintf(sendBuf3,"%s.%s",ENTER,ENTER);
break;
}
sendLen2 = sprintf(sendBuf2,"%s",data1);
send(__soc, sendBuf2, sendLen2, 0); }
printf("\n%s%s\n メッセージ本文の件名が送りました!\n\n",sendBuf1,sendBuf2);
send(__soc, sendBuf3, sendLen3, 0);
recvLen3 = recv(__soc,recvBuf3, BUFSIZE, 0); recvBuf3[recvLen3] = '\0';
printf("<=== %s", recvBuf3);
sscanf(recvBuf3,"%d %s", &resCode, tmp);
if(resCode == SUCCESS_CODE) return 0; else return -1;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CStringからchar*への型変換に...
-
char*を初期化したいのですが
-
C言語にて構造体のメンバがNULL...
-
new charとnew char[N]の違いは?
-
文字列の途中から途中までを抽出
-
小数点入りの文字列をfloat型に...
-
c言語でcsvファイルの処理で、...
-
警告
-
char型にint型の数値を代入する。
-
C++17で、unsigned char * 配列...
-
カンマで区切った文字の抽出に...
-
strcat関数を自作したいです
-
C言語のintとcharの違いってな...
-
'\\0'とはなんですか?
-
C言語のchar型配列を計算させる...
-
ビット演算のやり方
-
文字列の演算
-
void型へのポインタ
-
文字型配列に格納した空白の切捨て
-
fread()関数とfwrite()関数につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のintとcharの違いってな...
-
char*を初期化したいのですが
-
C言語にて構造体のメンバがNULL...
-
CStringからchar*への型変換に...
-
strcat関数を自作したいです
-
new charとnew char[N]の違いは?
-
csvファイルをfscanfで読み込む...
-
char型にint型の数値を代入する。
-
動的メモリの初期化方法について。
-
C言語で文字列をかえす正しい書...
-
文字列str内の全ての数字を...
-
char 文字列型 の表現範囲が-12...
-
DWORDとcharの変換
-
fstream型オブジェクトを関数の...
-
小数点入りの文字列をfloat型に...
-
C言語のプログラムについてです
-
const char* s1とただのchar s1...
-
文字列内の数字削除
-
c言語でポインタ変数を用いた配...
-
szとlpszの違い
おすすめ情報