我正在开发一个非常简单的客户端 - 服务器程序;但是,我非常相信部分开发代码(不编码所有内容然后运行它),即开发可按预期运行的可行部分。我认为这对于编程更复杂的一面是个简单的尝试,我想我会尝试一个“概念证明”:我希望我的客户端发送一个'String'对象和服务器来打印{{1}对象到控制台(我还有很多工作要做,但这似乎是一个简单的起点)。
我遇到了一个问题,我甚至无法让我的客户端或服务器实例化他们的输入/输出流,我不确定为什么。这可能是两个问题之一:
在这种情况下,我有一种感觉,答案可能是否定的。 1。
以下是来自我的客户端和服务器的两个代码片段,其中包含一些编辑内容,使其更具可读性和可理解性。
服务器
String
客户端
try {
serverSocket = new ServerSocket(commandlineArg);
System.out.println("Waiting for clients to connect...");
while (true) {
clientConnection = serverSocket.accept();
input = new ObjectInputStream(clientConnection.getInputStream());
output = new ObjectOutputStream(clientConnection.getOutputStream());
output.flush();
File file = new File((String) input.readObject());
System.out.println(file.getAbsolutePath());
}
}
港口号。正确提供客户端和服务器(以及保留范围之上)。同样,问题是try {
serverSocket = new Socket(InetAddress.getLocalHost(), portNo);
input = new ObjectInputStream(serverSocket.getInputStream());
output = new ObjectOutputStream(serverSocket.getOutputStream());
output.writeObject(fileName);
output.flush();
}
和input
没有实例化。程序停止并且不会继续尝试连接;因此我相信我在连接件中做错了什么。
欢迎任何帮助。