932 :
デフォルトの名無しさん:
WinAPIスレでも聞いたのですが、こちらに移動します。
メールサーバからメールのタイトルや送信者を調べて、
条件によって削除したいのですが、何を使うのがいいのでしょうか?
WinInetでは出来なさそうだし、
Telnetじゃカッコ悪いし。
何かいいのありませんか?
過去ログを”メール”で検索しましたが、それらしいのは見つかりませんでした。
934 :
名無しさん@接続しっぱなし。:02/06/05 03:17
>>932 PerlかVB(WSH)なんじゃないの?
Ruby, Pythonとかさ。
935 :
デフォルトの名無しさん:02/06/05 04:04
スレ違いなのですが、IEなどのブラウザはCookieをどう吐いているのでしょうか?
ローカル串鯖を構築しているのですが、クライアントのCookieとは別管理したいのです
つまり、串を通した時のレスは串鯖のCookieとなる訳です。
API使って共通化させてしまえば、簡単なのですが…
レス付いてる! うれしい(^O^)
Delphiで作ろうと思ったんですよ〜。
POP3って事は WinSock を使うのかな?
面倒そう・・・。
もしかして MAPI を使うのかも!
ちょっとやってみます。
>>936 Delphiならそういうコンポーネント探したほうが早いと思うが。
>>936 ぜんぜん面倒じゃないよ。
いつまでもWinsockから逃げてたらだめだYO!
マシンAからマシンBにデータを送信してる時に、
マシンBからマシンAに対してpingを打っていると転送速度が上がったり
接続が切れにくくなるのはプラシーボ効果なのでしょうか?
プラシーボ効果でなければ、現在開発中のアプリにping相当の機能を
盛り込みたいと思っていますので、参考文献を紹介して頂けると有り難いです。
プラシーボ効果という言葉の意味を勘違いしてる説
ダウンロードソフトにもサーバにping打つものがあったような・・。
pingが本当に効果があるのかどうか俺も知りたい。
>>939 一般的に言って無駄
>>941 それはサーバまでの回線の具合を計測する目的と思われ
複数のミラーから選ぶためのデータ取り
>>942 回答ありがとうございました。
ping打っても意味無いんですね・・。
RFC読めば良いんでないの?
HELO 自分のドメイン名
で
250 サーバー名 hello 自分のIP pleased to meet you
と出ましたが、直後に
550 Access denied
がでます。 なぜでしょう?
わかった・・・。
HELO ドメイン名 の後にCRLFを二つ重ねたら駄目でした。
>>946 とりあえずはtelnetでターゲットのSMTP鯖と
手動でお話してみることをオススメする
C:\>telnet host.domain 25
でいいから
追加:UserName と MD5Str の間にはちゃんと空白が入っています。
もしかしてサーバがAPOPに対応していないのかな。
それにしても、Outlook や Netscape はパスワードを
垂れ流していたんですね・・。
953 :
デフォルトの名無しさん:02/06/06 15:24
select()関数って遅いんですか?
もどってくるのに1秒くらいかかるんですけどこれって正常ですか?
遅いのはselect()じゃなかったです。ごめんなさい
955 :
デフォルトの名無しさん:02/06/06 15:34
WinSockでファイルの送信はできるんですが、
受信側でrecv()が返す値の合計がちゃんと合っているのに
生成されたファイルが元のファイルより小さくなってしまいます。
どのような原因が考えられるのでしょうか?一応ソース晒しときます。
while(1){
memset(recvbuf, 0, sizeof(recvbuf));
// データを受信
buf_len = recv(new_socket,recvbuf,RECVSIZE - 1,0);
if(buf_len == SOCKET_ERROR || buf_len < 0 || buf_len > RECVSIZE){ // 受信失敗の場合
MessageBox(NULL, "データ受信失敗", "エラー", MB_OK);
shutdown(new_socket,2);
// ソケットを破棄
closesocket(new_socket);
return;
}
recvbuf[buf_len] = '\0'; // 受信バッファの後ろにNULLを付加
recvsize += buf_len;
fprintf(fp, "%s",recvbuf); // ファイルに出力する
int percent;
percent = (int)( ((float) recvsize / datasize ) * 100);
sprintf(mesbuf, "データ受信中( %d bytes / %d bytes : %d %% 完了 )", recvsize, datasize, percent);
StatusBar->SetMessage(mesbuf);
if(percent == 100){
sprintf(mesbuf, "データ受信完了しました");
StatusBar->SetMessage(mesbuf);
break;
}
}
ソース見てないけど、
recvが返したデータを全部書き出してないだけだろ。
100バイトのメモリをファイルに98バイト書き出せば98バイトのファイルのできあがり
シングルスレッドのプログラムでacceptしてるんですけど
2つのクライアントがconnectに成功してしまいます?
listen(sock, 5)が影響してそうなんですけど
1つしかconnectが成功しないように制限するには
どうしたらよいでしょうか?
>>957 listen(sock, 1)とか(笑)
>>956 >>recvが返したデータを全部書き出してないだけだろ。
>>100バイトのメモリをファイルに98バイト書き出せば98バイトのファイルのできあがり
なるほど。
fprintf(fp, "%s",recvbuf); // ファイルに出力する
ここで失敗していたということですね。
それじゃどうやって出力すべきなんでしょうか?
あと…、
ファイル送受信のテストはネットに接続した同じパソコンでやっているんですが、
みたところネットを経由せずに直接パソコンの中でデータをやり取りしているように見えます。
そんなことってあるんですか?
>960
fwrite。
>961
判断の根拠を示せ。
>957
acceptした後、listenソケトを閉じろ。
>>962 fwrite()で書き込んだところ、上手くいきました。
かなり悩んでいました。本当にありがとうございます。
それから、判断の根拠というのは以下の理由からです。
・右下のタスクバーのアイコンが通信している様子を示さない
・状態を見てみても、送信バイト数と受信バイト数に変化が見られない
・パケットの到着がとても早い
localhost間の通信はLANとか外のネットワークにパケットは
飛ばないよ。 当然だろが。
966 :
デフォルトの名無しさん:02/06/06 18:30
HTTPでファイルをダウンロードするプログラムを作っているんですが、
バイナリファイルをダウンロードするとどうしてもファイルサイズが合いません。
もちろんファイルは壊れています。バイナリでみると、最初のほうに
Content-Type: application/octet-streamというのが含まれたりするんですが。
どうすればちゃんとダウンロードできますか?
>>966 HTTPヘッダ解釈してないの?
それとも、ちゃんとbodyみてるのにあわないの? その場合はHTTP/1.1でrequestしてchunkedで応答されてたり?
>>968 これ、マ板に誤爆です。ム板のものを立て直しますんで、
このスレ放置おながいします。すまん。
(゚Д゚≡゚Д゚)??
972 :
デフォルトの名無しさん:02/06/06 19:06
>>967 サーバからのレスポンスは以下の通りです。
htmlをダウンロードするときは上手くいくんですが、
書庫とか、その他のファイルをダウンロードするとやっぱり上手くいきません。
2002/06/06 18:58:28 サーバからのレスポンス
2002/06/06 18:58:28 HTTP/?.? Content Partial Content
2002/06/06 18:58:28 HTTP/1.1 206 Partial Content
2002/06/06 18:58:28 Date: Thu, 06 Jun 2002 10:00:02 GMT
2002/06/06 18:58:28 Server: Apache/1.2.5
2002/06/06 18:58:28 Last-Modified: Fri, 25 Jun 1999 16:42:36 GMT
2002/06/06 18:58:28 ETag: "f97f1-21fbb-3773b17c"
2002/06/06 18:58:28 Content-Length: 139195
2002/06/06 18:58:28 Content-Range: bytes 0-139194/139195
2002/06/06 18:58:28 Connection: close
2002/06/06 18:58:28 Content-Type: application/x-lha
>>972 で、そのあとに139195バイト来ないの?
(ところで Apache/1.2.5って…)
>>967 解析してないだろ。
バイナリの先頭にContent-Type:〜って入ってるみたいだから。
976 :
デフォルトの名無しさん:02/06/06 19:44
>>975 そう思って見てみました。
やっぱりそこにミスがあって修正もしましたが依然としてダウンロードは上手くいきません。
ちなみにリクエストは以下の通りで、Irvineをみてそのままパクったんですが、何か問題あるのでしょうか?
GET /taketani/soft/file/pktxt18.lzh HTTP/1.0
Host: www.eva.hi-ho.ne.jp
User-Agent: AutoDownloader/0.0
Referer:
http://www.eva.hi-ho.ne.jp/taketani/soft/file/pktxt18.lzh Accept: */*
Range: bytes=0-
Connection: close
977 :
デフォルトの名無しさん:02/06/06 19:48
あとデータは現在の実装だとレスポンスの\r\n\r\nの後ろからを切り離して保存しているんですが、
それでいいのかどうかもわかりません。具体的に説明したページなどありませんでしょうか?
バイナリデータが流れてくるまでのすべてのレスポンスヘッダも書け
RFCを読まずに書かれたネットワークプログラムって怖いな
>>979 こんな感じなんですが…
HTTP/1.1 206 Partial Content
Date: Thu, 06 Jun 2002 10:50:27 GMT
Server: Apache/1.2.5
Last-Modified: Fri, 25 Jun 1999 16:42:36 GMT
ETag: "f97f1-21fbb-3773b17c"
Content-Length: 139195
Content-Range: bytes 0-139194/139195
Connection: close
Content-Type: application/x-lha
>>980 少しは勉強したつもりだったんですが…なんか良い勉強サイトなどないでしょうか?
>>982 すべてのと言ったはず。\r\n\r\nまでじゃない