我正在开发一个服务器到java上的客户端文件传输程序,并且无法弄清楚如何修复以下代码,因为我对socket编程知之甚少。代码是客户端的代码:
String receiverIP = null;
int serverPort = 0;
hostIP = args[0];
serverPort = Integer.parseInt(args[1]);
String fileToSend = args[2];
byte[] aByte = new byte[1];
int bytesR;
Socket clientSocket = null;
Socket connectSocket = null;
BufferedOutputStream ToClient = null;
InputStream is = null;
try {
ToClient = new BufferedOutputStream(connectSocket.getOutputStream());
clientSocket = new Socket(hostIP, serverPort);
is = clientSocket.getInputStream();
} catch (IOException ex) {
System.out.println(ex);
}
至于我的问题,我在第14行得到一个空指针异常(毫无疑问,因为当前connectSocket为null),但我不知道我可以在connectSocket上分配什么(如果它在服务器端,连接接受套接字可以'在建立连接后,我被指派开始写作。)
答案 0 :(得分:0)
与您似乎相信的相反,您不需要两个单独的套接字来读取和写入服务器。一个插座就足够了。您可以调用getInputStream
方法来获取要从服务器读取的流,并getOutputStream
来获取要写入服务器的流。你不需要两个插座,只需一个。