我没有看到类似的问题,如果这个问题不够具体,我会道歉。
我将首先介绍我是Java的新手,我在大约10年前编写了它(基本的东西),但不记得任何一个。我正在研究一个侦听套接字并可以接收多种数据类型的程序,I.E。文本,接收FTP文件,接收http post文件。我希望能够分析传入的数据类型,然后以不同的方式处理每种类型。我发现了一些关于如何在不同端口上执行所有操作的文章,但是想知道是否有更好的方法可以这样做。
我对一些解决方案的问题是我不想要一个完整的ftp或http服务器,我只想通过ftp put或http post接收文件。
编辑:当我说我不需要服务器时,我的意思是我不需要处理接收文件之外的任何事情。
额外的清晰度:采取类似这样的简单方法(仅限示例目的)
BufferedReader br = null;
in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
while (true) {
String input;
while((input = br.readLine()) != null){
System.out.println(input);
}
in.close();
}
那将只打印我发送给监听器的任何文本。我想知道是否有办法检查输入流的类型。这可能超出了我的技能,但希望某个地方能够阅读它。我读到的所有东西都是特定类型(FTP,HTTP,自定义客户端),所以理想情况下我会检查输入流然后做一些事情。
if(socket.getInputStream() == HTTP || FTP){
//receive file
}
else if(stream == text){
//parse text
}
else { //unsupported format }
或
String streamType = getStreamType(inputStream) //returns input stream type.
直到这一点,我的编码经验都与我得到的数据有关。这是我第一次使用套接字和监听器。
由于