基本上我想在真正的互联网(不是本地网络)中测试我的客户端 - 服务器程序,这样我和我的朋友(在另一个城市)应该能够使用这个客户端 - 服务器程序。
我希望我的Java服务器程序可以在互联网上使用,我相信有两种方法可以将我的iMac转换为Web服务器,另一种方法是使用网络托管服务。
我的问题是: -
1)如果我想将自己的iMac转换为服务器(通过互联网),我该怎么做(考虑最新的mac OS sierra)不购买 mac OS服务器软件?< / p>
2)是否有免费托管网站允许我托管Java服务器程序(不是网站)。请提及有关如何在该站点上传我的Java服务器程序并使其可用于每个客户端程序的所有详细步骤,因为我不熟悉该领域!
3)如果我为我的iMac购买 mac os服务器软件,我的目的是让每个人都可以使用java服务器程序(mac / windows)互联网?
以下是我的Java服务器客户端线程处理程序代码的一小部分,以获取透视图:
public Handler(Socket socket,int id) {
this.socket = socket;
try{ socket.setTcpNoDelay(true);}catch(Exception l) { }
ID=id;
//input=new Object[1000];
try{
if(out==null)
{
// System.out.println("trying to open output streams");
out = new ObjectOutputStream(socket.getOutputStream());
//System.out.println("ADDED WRITER....."+"setting requester no="+(frame.w_count+1));
w_count++; writers[w_count]=out;out.flush();writers[w_count].flush(); requester=w_count; count++;
}
if(in==null){
//System.out.println("trying to open input streams");
in = new ObjectInputStream(socket.getInputStream());}
// System.out.println("opened input stream successfully");
}catch(Exception k) { System.out.println(k.toString());}
}
public void server_out(Object[] inp)
{
try{
int o=0;
Object[] inpClone=Arrays.copyOf(inp,store);
int str=store;
store=0;
for (int u=0;u<(w_count+1);u++) {
//System.out.println("sending object to client");
//System.out.println("THIS.ID="+this.ID+" and w_count is ="+w_count);
if(u!=updateFrom) {writers[u].writeObject(inpClone);
writers[u].flush();}
//System.out.println("object sent to client"+u);
}
}catch(Exception k) {System.out.println(k.toString()); }
}
public void run() {
try {
while(true)
{
//System.out.println("RUNNING FROM CLIENT "+requester);
int o=0;
synchronized(writers)
{
synchronized(in)
{
//System.out.println("No client update pending");
String handOver="#dataHandOver";
// System.out.println("Asking Client No. "+requester+" for hand over..");
writers[requester].writeObject(handOver);
// System.out.println("Trying to read objects from Client No. "+requester);
Object test=in.readObject();
if(test!=null)
{
Object rec[]=(Object[])test;
input=rec;
//System.out.println("creating array upto="+c);
//store=c;
store=rec.length;
updateFrom=requester;
server_out(input);
}
// System.out.println("data dumped");
//}
//else in.readObject();
writers[requester].flush();
}
}
}
} catch (Exception e) {
System.out.println(e);
} finally {
System.out.println("came to finally");
if (out != null) {
//writers.remove(out);
}
try {
socket.close(); System.exit(0);
} catch (IOException e) {
}
}
}
}
}