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

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

问题描述:

我正在学习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

服务器发送响应正常,但在客户端,我得到错误:

Exception in thread "main" java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.(Unknown Source) at java.net.Socket.(Unknown Source) at ClientClass.main(ClientClass.java:26)

我我不知道为什么这个问题。任何帮助?

我的客户:

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

public class ClientClass { 

    public static void main(String args[]) throws IOException, ClassNotFoundException 
    { 
     // take order and convert it to array of choices 
     Scanner myScanner = new Scanner(System.in); // take from user 
     System.out.println("Enter all your choices seperated by space:"); 
     System.out.println("Choices are: 1- 2- 3- 4"); 
     String orderString = myScanner.next(); 
     orderString += myScanner.nextLine(); 
     String orderArray[] = orderString.split(" "); 

     // send request to server 
     Socket mySocket = new Socket("127.0.0.1", 4444); // create a socket 
     ObjectOutputStream out = new ObjectOutputStream(mySocket.getOutputStream()); 
     out.writeObject(orderArray); 

     // get response from server 
     InputStream is = mySocket.getInputStream(); 
     InputStreamReader isr = new InputStreamReader(is); 
     BufferedReader br = new BufferedReader(isr); 
     String message = br.readLine(); 
     System.out.println("Message received from the server : " +message); 

    } 
} 

我的服务器:

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(); 

    } 
} 

server is sending response fine

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

but on the client side I get error:

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

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