2

Mac OS X 10.8 マシンに、Tomcat 7.0.40 サーバーとクライアントがあり、どちらもローカルで実行されています。3 ウェイ ハンドシェイクを介して TCP 接続が確立され、その後すぐにサーバーからの FIN、ACK、および RST が続きます。クライアントは「サーバーからのファイルの終わり」または「接続のリセット」を受け取ります。

TCP シーケンス:

クライアント SYN
サーバー SYN、ACK
クライアント ACK

server [TCP Window Update] ACK
server FIN, ACK
client ACK
server [TCP Dup ACK] ACK
client GET /myurl/...
server RST

詳細
- クライアントとサーバーの両方がローカルで実行されます
- 最初の GET 要求が失敗します。次のリクエストは成功します。
- ファイアウォールがオンになっていません
- maxfiles はすでに増加していますが、無駄です

サーバーがソケットを閉じる原因は何ですか? ヒントやアイデアを高く評価します。

編集: Tomcat のログには、次のスタック トレースがあります。

    FINE: HTTP 要求ヘッダーの解析中にエラーが発生しました
    java.net.SocketException: 引数が無効です
    java.net.SocketInputStream.socketRead0 (ネイティブ メソッド) で
    java.net.SocketInputStream.read(SocketInputStream.java:150) で
    java.net.SocketInputStream.read(SocketInputStream.java:121) で
    org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:516)で
    org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:501)で
    org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:98) で
    org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:928) で
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) で
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) で
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) で
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) で
    java.lang.Thread.run(Thread.java:724) で

    2013 年 8 月 14 日午後 5:15:17 org.apache.coyote.http11.AbstractHttp11Processor プロセス
    FINE: HTTP 要求ヘッダーの解析中にエラーが発生しました
    java.io.EOFException: ソケットで予期しない EOF が読み取られました
    org.apache.coyote.http11.Http11Processor.setRequestLineReadTimeout (Http11Processor.java:174) で
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:926) で
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) で
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) で
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) で
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) で
    java.lang.Thread.run(Thread.java:724) で
4

1 に答える 1

0

IP アドレスのブラックリストなどの設定済みのアクセス ルールに違反しているか、理解できないものを送信している必要があります。

于 2013-08-09T08:38:49.490 に答える