Java 将域分配给IP地址

Java 将域分配给IP地址,java,http,sockets,Java,Http,Sockets,如何让我的Java应用程序在某个套接字(例如172.16.1.10:8080)上运行HTTP服务器,并使其在网络上的另一台计算机连接到域(例如http://myjavadomain.com)它会被重定向到套接字?如果您想运行一个成熟的HTTP服务器,那么您可能需要使用一些外部库。例如,它是用Java编写的,但也有SUN的。如果只是一个简单的套接字服务器,您可以使用java.net包中的内置类: ServerSocket server = new ServerSocket(8080); whil

如何让我的Java应用程序在某个套接字(例如172.16.1.10:8080)上运行HTTP服务器,并使其在网络上的另一台计算机连接到域(例如
http://myjavadomain.com
)它会被重定向到套接字?

如果您想运行一个成熟的HTTP服务器,那么您可能需要使用一些外部库。例如,它是用Java编写的,但也有SUN的。如果只是一个简单的套接字服务器,您可以使用java.net包中的内置类:

ServerSocket server = new ServerSocket(8080);

while (running) {
    Socket socket = server.accept();
    handleConnection(socket);
}
这将侦听端口8080上的传入套接字连接,并在客户端连接时创建一个新的
socket
。然后,您可以通过
Socket
InputStream
outstream
与客户机通信,这可能是在单独的线程中完成的,这样您的
ServerSocket
就可以继续侦听来自其他客户机的传入连接

至于问题的第二部分:默认情况下,web浏览器将连接到端口80,并且有几种方法可以进行端口转发。使用iptables的一个可能解决方案如下所示:

但最简单的解决方案是在连接到计算机时直接指定端口号,例如

http://myjavadomain.com:8080

这是假设您的DNS已配置为将myjavadomain.com解析为172.16.1.10。

如果您使用的是Apache Tomcat,则以下配置将对您有所帮助

对于ApacheTomcat,您必须在Tomcat_主位置的配置位置中创建on Host条目

遵循以下步骤将对您有所帮助

1) 在
TOMCAT_HOME的
conf
位置中找到
server.xml
文件 2) 在
server.xml
文件中,输入以下主机条目

<Host name="www.xyz.com" debug="0" appBase="webapps/mynewhost" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="mynewhost_log." suffix=".txt" timestamp="true"/>
</Host>


In appBase property place the location of your web app 

在appBase属性中放置web应用的位置

3) 现在在浏览器中打开上面的url。

您正在使用哪个web容器?
<Host name="www.xyz.com" debug="0" appBase="webapps/mynewhost" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="mynewhost_log." suffix=".txt" timestamp="true"/>
</Host>


In appBase property place the location of your web app