[Mew-Win32 03036] Re: socket operation non-socket...?
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2001年 2月 5日 (月) 12:31:06 JST
白井です。
# 全然なにがなんだかわからないのですが、もがいてみます。^^;
From: t.kuromiya at example.com <t.kuromiya at example.com> さん曰く
Subject: [Mew-Win32 03033] socket operation non-socket...?
Message-ID: <20010203181042P.t.kuromiya at example.com>
Date: Sat, 03 Feb 2001 18:10:42 +0900 (JST)
黒宮> 以前、1月10日に切明@名古屋さんがご投稿された
黒宮> "[Mew-Win32 02974] Connection failed"というメールと
黒宮> 全く同じ現象なのですが、1.95b**のMewで、
黒宮> メールが送受信できないという状況に陥っています。
黒宮> 環境は
黒宮> OS: Windows-Me
私は、WindowsME を使ったこと無いし、黒宮さん切明さんが遭遇したエ
ラーも体験したことがないのですが。。。
黒宮> 具体的なエラーの現象としては、Mewを起動して
黒宮> incしようとすると、ネットワークに正常に接続しているにも
黒宮> かかわらず、Meadowのミニバッファに
黒宮> Connection failed socket operation non-socket
黒宮> というメッセージが表示され、コネクションが張れません。
このエラーは 100% mew-smtp.el や mew-pop.el の
(open-network-stream pnm nil server sprt)
という行が出しているエラーです(たぶん)。
黒宮> なお、
黒宮> (setq debug-on-error t)
黒宮> (setq mew-debug t)
黒宮> などを評価してみても、*Backtrace*バッファが出てくれないので、
黒宮> どこが悪いのか見当がつきません。
また、Mew では open-network-stream() は condition-case で囲われ
ているため、debug-on-error などは期待した動作をしてくれません。
黒宮> ActivePerl623+Mew-1.94.2+IM-141
黒宮> を使用すれば、問題なくメールの送受信ができます。
IM を使う Mew は smtp や pop は IM (Perl)が行なうのでこの問題は
関係ないのでしょう。
黒宮> 以上のような感じです。
黒宮> まだあんまりWindowsMEが出回ってないからかもしれませんが、
黒宮> こんな現象に遭遇した方ってほかにおられないのでしょうか。
う〜〜ん、上記の open-network-stream() は Mew 以外にもありとあら
ゆるところで使われているので、WindowsME + Meadow の組合わせで若
干エラーになる人がいるとすると、他の場所で聞いたことがあるような
気もするのですが。。。(w3 とか動きますか?)
下の elips を動かしてエラーになるかどうかで、とりあえず、原因の
切り分けからしてみましょう。
# "*TEST*" という buffer に mew の web が get されます。
;; 直接 http server と話せる場合はこちら。
(let ((server "www.mew.org")
(port 80)
(url "index-j.html")
(buf (get-buffer-create "*TEST*"))
process)
(pop-to-buffer buf)
(erase-buffer)
(setq process (open-network-stream "TEST" buf server port))
(set-process-coding-system process 'undecided 'raw-text)
(process-send-string process (format "GET %s\n" url)))
;; proxy 通さないとだめな場合はこちら。
(let ((proxy-server "host.domain.com") ;; proxy server の設定
(proxy-port 8080) ;; proxy port の設定
(url "http://www.mew.org/index-j.html")
(buf (get-buffer-create "*TEST*"))
process)
(pop-to-buffer buf)
(erase-buffer)
(setq process (open-network-stream "TEST" buf proxy-server proxy-port))
(set-process-coding-system process 'undecided 'raw-text)
(process-send-string process (format "GET %s HTTP/1.0\n\n" url)))
これが動くとなると、Mew との差は open-network-stream() で buffer
を nil に指定しているぐらいです。
また、
(w32-has-winsock)
(w32-unload-winsock)
などという関数を見つけてしまいました。良くわかっていませんが、
winsock がきちんと動いていると、
(w32-has-winsock) => FQDN が帰ってくる。
ようです。
help> w32-has-winsock is a built-in function.
help>
help> Test for presence of the Windows socket library `winsock'.
help> Returns non-nil if winsock support is present, nil otherwise.
help>
help> If the optional argument LOAD-NOW is non-nil, the winsock library is
help> also loaded immediately if not already loaded. If winsock is loaded,
help> the winsock local hostname is returned (since this may be different from
help> the value of `system-name' and should supplant it), otherwise t is
help> returned to indicate winsock support is present.
help>
help> (w32-has-winsock &optional LOAD-NOW)
(w32-has-winsock t) なども効くのかな?
ついでに hosts に localhost を書いた方が良いのかな?
--
白井秀行@結局なにもわかっていません (_ _)
Mew-win32 メーリングリストの案内