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套接字和服务器客户端问题_Java_Sockets_Network Programming_Client Server_Client - Fatal编程技术网

Java套接字和服务器客户端问题

Java套接字和服务器客户端问题,java,sockets,network-programming,client-server,client,Java,Sockets,Network Programming,Client Server,Client,没有两个系统是相同的(特别是在网络方面),这可能会使您的结果与我的不同,但我在让我的Java服务器和Java客户端友好相处方面遇到了一些问题。看一看: 服务器: package ca.xeyler; import java.io.*; import java.net.*; public class ChatServer { public static void main(String[] args) throws Exception { ChatServer server = ne

没有两个系统是相同的(特别是在网络方面),这可能会使您的结果与我的不同,但我在让我的Java服务器和Java客户端友好相处方面遇到了一些问题。看一看:

服务器:

package ca.xeyler;

import java.io.*;
import java.net.*;

public class ChatServer {

public static void main(String[] args) throws Exception {
    ChatServer server = new ChatServer();
    server.run();
}

public void run() throws Exception {
    ServerSocket SRVSOCK = new ServerSocket(444);
    Socket SOCK = SRVSOCK.accept();
    InputStreamReader IR = new InputStreamReader(SOCK.getInputStream());
    BufferedReader BR = new BufferedReader(IR);

    String MESSAGE = BR.readLine();
    System.out.println(MESSAGE);

    if(MESSAGE != null) {
        PrintStream PS = new PrintStream(SOCK.getOutputStream());
        PS.println("Hello");
    }
}

}
客户:

package ca.xeyler;

import java.io.*;
import java.net.*;

public class Chat {

public static void main(String[] args) throws Exception {
    Chat CLIENT = new Chat();
    CLIENT.run();
}

public void run() throws Exception {
    Socket SOCK = new Socket("localhost", 444);
    PrintStream PS = new PrintStream(SOCK.getOutputStream());
    PS.println("Hi, server!");

    InputStreamReader IR = new InputStreamReader(SOCK.getInputStream());
    BufferedReader BR = new BufferedReader(IR);

    String MESSAGE = BR.readLine();
    System.out.println(MESSAGE);
}

}
最重要的是,这些问题:

服务器问题:

Exception in thread "main" java.net.SocketException: Resource temporarily unavailable: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at ca.xeyler.ChatServer.run(ChatServer.java:19)
at ca.xeyler.ChatServer.main(ChatServer.java:10)
客户问题:

null

你们太棒了。提前感谢您解决我的问题

readLine()
中的
null
仅表示流的结束。这里没有什么神秘之处。服务器问题很奇怪。您肯定应该使用1024以上的更高端口:例如尝试4444。显然,在端口24342上,它仍然无法工作。同样的错误消息,所以我敢打赌更改端口没有多大作用。。。