簡體   English   中英

無法通過客戶端/服務器程序的套接字連接

[英]Cannot connect through socket for client/server program

package server;

import java.net.*;  // for network 
import java.util.*; // for utilities
import java.io.*;   // for streams

import server.ex12ClientThread;


public class ex12Server implements ex12Constants
{

    public static void main(String args[])
    {

int well_known_port     = SERVERPORT; // default port value 
        ServerSocket serverSock = null;

        ex12ClientThread thread = null;

        try  { // to get a port number
            if ( args.length > 0 )
            {
                well_known_port = Integer.parseInt(args[0]);
                        //initialises port number to connect to
            }

        } catch (NumberFormatException e ) {} // do nothing accept default.

        try
        {


            serverSock = new ServerSocket( well_known_port, 10 ) ;


            // information to log file (ie screen)
            System.out.println("ServerSocket " + serverSock.toString());
            System.out.println("Entering server loop");



            while( true ) // Main Server loop
            {
                Socket clientSocket = serverSock.accept();

                thread = new ex12ClientThread(clientSocket);
                                thread.setDaemon(true); 
                thread.start();



                        }   

                } catch( Exception e )
{ 
            System.err.println( "Socket Error!!!." ) ; 
            System.exit(1) ; 
        }
        finally
                {
                    try
                    {
                        serverSock.close();
                    }
                    catch (IOException e) {}
                }
    }
}

至少在這一點上,如果您要對要丟棄的一些異常進行 printStackTrace ,這可能會有所幫助。 我知道在我的個人開發框中,我通常在 8080 之類的端口上運行至少 1 個應用程序服務器,並且我有 Apache 或 IIS 通常在端口 80 上運行,所以如果端口上已經綁定了其他東西,那么異常將被第一個捕獲(異常 e)拋出並捕獲。 您可能在關閉執行之前退出應用程序,正如我認為的那樣,Javadoc 說調用不會返回,所以雖然這可能不是問題,因為您正在拋出線程,您可能有自己的線程那里阻塞了其他連接,盡管我真的懷疑,它可能是那些“由實施者決定的行為”類型的東西之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM