java socket-服务器不启动 直接启动客户端.md

启动客户端 报错信息

服务器不启动 直接启动客户端

objc[1252]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java (0x105f504c0) and /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x105fe64e0). One of the two will be used. Which one is undefined.

java.net.ConnectException: Connection refused //报错信息 是在哪里? 

	at java.net.PlainSocketImpl.socketConnect(Native Method)

	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)

	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)

	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)

	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

	at java.net.Socket.connect(Socket.java:579)

	at java.net.Socket.connect(Socket.java:528)

	at java.net.Socket.<init>(Socket.java:425)

	at java.net.Socket.<init>(Socket.java:208)

	at serverMaxConn.Client.main(Client.java:22)

复制代码

应用层代码

//创建客户端套接字 连接服务器

				Socket s = new Socket("127.0.0.1", 8888); 


复制代码

源码分析

abstract class AbstractPlainSocketImpl extends SocketImpl

{


/**

     * The workhorse of the connection operation.  Tries several times to

     * establish a connection to the given <host, port>.  If unsuccessful,

     * throws an IOException indicating what went wrong.

     */



    synchronized void doConnect(InetAddress address, int port, int timeout) throws IOException {

        synchronized (fdLock) {

            if (!closePending && (socket == null || !socket.isBound())) {

                NetHooks.beforeTcpConnect(fd, address, port);

            }

        }

        try {

            acquireFD();

            try {

                socketConnect(address, port, timeout); //没有进入实现类方法 而是进入ClassLoader的方法?而且直接报错了 连接服务器 遭到拒绝

                /* socket may have been closed during poll/select */

                synchronized (fdLock) {

                    if (closePending) {

                        throw new SocketException ("Socket closed");

                    }

                }

                // If we have a ref. to the Socket, then sets the flags

                // created, bound & connected to true.

                // This is normally done in Socket.connect() but some

                // subclasses of Socket may call impl.connect() directly!

                if (socket != null) {

                    socket.setBound();

                    socket.setConnected();

                }

            } finally {

                releaseFD();

            }

        } catch (IOException e) {

            close();

            throw e; //捕获异常

        }

    }

复制代码

public abstract class ClassLoader {


// Invoked in the VM class linking code.

    static long findNative(ClassLoader loader, String name) {

        Vector<NativeLibrary> libs =

            loader != null ? loader.nativeLibraries : systemNativeLibraries;

        synchronized (libs) {

            int size = libs.size();

            for (int i = 0; i < size; i++) {

                NativeLibrary lib = libs.elementAt(i);

                long entry = lib.find(name);

                if (entry != 0)

                    return entry;

            }

        }

        return 0;

    }


复制代码

原因分析

stackoverflow.com/questions/6…

This exception means that there is no service listening on the IP/port you are trying to connect to:

You are trying to connect to the wrong IP/port.
You have not started your server. //没有启动服务器
Your server is not listening for connections.
On Windows servers, the listen backlog queue is full.
复制代码

转载于:https://juejin.im/post/5c513ed2e51d457d105d34f6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值