在Java或.NET中,您将如何创建一个侦听特定端口的服务器?
(只是一个虚拟服务器,我只想获得高层次的想法。)
答案 0 :(得分:8)
建议Sun的Learning Trail tutorial on writing a client and server用于Java。
您需要的密钥代码(从上面的链接复制)是:
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4444);
} catch (IOException e) {
System.out.println("Could not listen on port: 4444");
System.exit(-1);
}
答案 1 :(得分:1)
不确定“服务器”是什么意思,但是,在.NET中,您可以在指定端口上监听TcpListener
。我确信Java也有类似的东西。
答案 2 :(得分:0)
对于Java,查找java.net.ServerSocket。
这里有一个教程:http://java.sun.com/docs/books/tutorial/networking/sockets/clientServer.html。
答案 3 :(得分:0)
Veery高级别:
import java.io.*;
import java.net.*;
import java.util.Date;
public class Xyz {
public static void main( String [] args ) throws IOException {
ServerSocket serverSocket = new ServerSocket(8080);
while( true ) {
final Socket client = serverSocket.accept();
Thread thread = new Thread( new Runnable() {
public void run() {
handle( client ); // custom method
}
});
thread.start();
}
}
public static void handle( Socket client ){
try {
PrintStream out = new PrintStream( client.getOutputStream() );
out.println( new Date().toString() );
out.close();
client.close();
} catch ( IOException e ){
}
}
}
这将打开端口8080并将接受连接。每个连接(套接字)将通过此类的handle
方法在不同的线程中出现(这里只打印当前日期)
这是高级别的。您需要添加处理异常,并发性,当然,您必须自己实现handle
方法。