在Java或.NET中,您将如何创建侦听特定端口的服务器?

时间:2009-12-28 13:39:30

标签: java .net

在Java或.NET中,您将如何创建一个侦听特定端口的服务器?

(只是一个虚拟服务器,我只想获得高层次的想法。)

4 个答案:

答案 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方法。