Java SocketServer";接受();方法不起作用?
我只是测试了一下Sockets和ServerSockets。所以我做了一个小测试程序,但它不起作用。它似乎在“.accept()”方法的某个地方停止了,但我不知道为什么。有人能帮忙吗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);
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()
的文档中可以看到:“该方法会一直阻塞,直到建立连接为止”。您需要编写一个连接到服务器的客户端程序!哦,好的。我错了,谢谢你,帮了很多忙