连接拒绝从客户端到服务器

时间:2017-10-19 23:23:59

标签: java sockets tcp network-programming

我正在学习Java中的套接字,我只是错过了如何从服务器接收回来的响应。

关注How to send string array objectHow to send and receive serialized object in socket channel,我试图让用户选择他想要的数量:

  

1 - 2 - 3 - 4

然后我想拆分并将它们作为一个数组发送到服务器,服务器应该发回用户选择的数量。

例如,如果用户选择

  

2 3 4 1 2 3 4 1

服务器应该返回

  

8

服务器发送响应很好,但在客户端我收到错误:

  

线程“main”中的异常java.net.ConnectException:Connection   拒绝:连接java.net.DualStackPlainSocketImpl.connect0(原生   方法)在java.net.DualStackPlainSocketImpl.socketConnect(未知   来自java.net.AbstractPlainSocketImpl.doConnect(未知来源)     at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)     在java.net.AbstractPlainSocketImpl.connect(未知来源)at   java.net.PlainSocketImpl.connect(未知来源)at   java.net.SocksSocketImpl.connect(未知来源)at   java.net.Socket.connect(未知来源)at   java.net.Socket.connect(未知来源)at   java.net.Socket。(未知来源)at   java.net.Socket。(未知来源)at   ClientClass.main(ClientClass.java:26)

我不确定为什么会这个问题。有什么帮助吗?

我的客户:

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintStream;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.channels.SocketChannel;
import java.util.Scanner;

public class ServerClass {

    public static void main(String args[]) throws IOException, ClassNotFoundException
    {
        // receive
        ServerSocket myServerSocket = new ServerSocket(4444); // create a server socket
        Socket mySimpleSocket = myServerSocket.accept(); // accept requests
        ObjectInputStream ois = new ObjectInputStream(mySimpleSocket.getInputStream());
        String[] choices = (String[]) ois.readObject();


       // send back response
       OutputStream os = mySimpleSocket.getOutputStream();
       OutputStreamWriter osw = new OutputStreamWriter(os);
       BufferedWriter bw = new BufferedWriter(osw);
       bw.write(choices.length);
       System.out.println("Message sent to the client is "+choices.length);
       bw.flush();

    }
}

我的服务器:

{{1}}

1 个答案:

答案 0 :(得分:0)

  

服务器正在发送回复

垃圾。服务器甚至没有获得传入连接,更不用说阅读请求了,更不用说发送响应了。

  

但在客户端我收到错误:

Exception in thread "main" java.net.ConnectException: Connection refused: connect at 

根据这一证据,服务器甚至没有正在运行。当然没有与客户端在同一主机上运行,​​这是new Socket("127.0.0.1", 4444)所要求的。