Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SocketServer";接受();方法不起作用?_Java_Sockets - Fatal编程技术网

Java SocketServer";接受();方法不起作用?

Java SocketServer";接受();方法不起作用?,java,sockets,Java,Sockets,我只是测试了一下Sockets和ServerSockets。所以我做了一个小测试程序,但它不起作用。它似乎在“.accept()”方法的某个地方停止了,但我不知道为什么。有人能帮忙吗 public class ServerToClient { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(1235);

我只是测试了一下Sockets和ServerSockets。所以我做了一个小测试程序,但它不起作用。它似乎在“.accept()”方法的某个地方停止了,但我不知道为什么。有人能帮忙吗

public class ServerToClient
{

    public static void main(String[] args) throws IOException
    {
        ServerSocket server = new ServerSocket(1235);
        server.setSoTimeout(10000);
        try
        {

            Socket client = server.accept();
            client.close();
            server.close();
            System.out.println("Client: " + client.isClosed());
            System.out.println("Server: " + server.isClosed());
        }
        catch(InterruptedIOException e)
        {
            System.err.println("Timeout");
            server.close();
        }


    }

}
server.accept()阻塞,直到有客户端建立连接

您可以创建一个连接到该套接字并发送如下数据的客户端:

Client.java

Socket sendSocket = new Socket(host, port));
PrintWriter writer = new PrintWriter(sendSocket.getOutputStream());
writer.println("hello server");
writer.flush();
简单服务器:

import java.net.ServerSocket;
import java.net.Socket;

public class Server
{
int PORT = 8080;

Server()
{
    try {

    ServerSocket serverSocket = new ServerSocket(PORT);
    System.out.println("Listening on port "+PORT);
    Socket socket = serverSocket.accept();
    System.out.println("Connected to "+ socket.getRemoteSocketAddress());


    socket.close();
    serverSocket.close();

    }catch(Exception e) {e.printStackTrace();}
}

public static void main(String[] args)
{
    new Server();
}
}
一个简单的客户端:

import java.net.Socket;

class Client 
{
int PORT = 8080;    

public Client()
{
    try {
    Socket socket = new Socket("localhost",PORT);
    System.out.println("Just connected to server at port"+PORT);

    socket.close();
    }catch(Exception e) {e.printStackTrace();}
}

public static void main(String[] args)
{
    new Client();
}
}

accept()
的文档中可以看到:“该方法会一直阻塞,直到建立连接为止”。您需要编写一个连接到服务器的客户端程序!哦,好的。我错了,谢谢你,帮了很多忙