InetAddress类作为参数,实参的格式是怎样的呢,是要写ip地址吗,比如127.0.0.1直接写上去吗

InetAddress类作为参数,实参的格式是怎样的呢,是要写ip地址吗,比如127.0.0.1直接写下去吗
例子:服务器客户端聊天程序片段,,
public void mb_run(InetAddress address,int port)//address是网络地址,port是端口号


。。。。。。。。
Socket s=new Socket (address,port);

。。。。。。。。。



public static void main(String args[])


。。。
app.mb_run(127.0.0.1, 5000);//app是一个对象,不要管他。而且这句是错的,因为实参127.0.0.1不对

。。。。

我只想知道这个实参应该怎样写才算inetaddress类型,还有就是如果我想在我的机子上运行服务器端程序,在别的ip地址下的另一台电脑运行客户端程序,那么那个address应该填的是外网ip,还是内网ip呢?
------最佳解决方案--------------------
显然你要生成一个InetAddress类型的对象来当作参数传递吧?

一般来说可以:
    app.mb_run(InetAddress.getByName("127.0.0.1"), 5000);

因为你这里其实就是本机地址,所以可以简单点:
    app.mb_run(InetAddress.getLocalHost(), 5000);
------其他解决方案--------------------
漏了你第二个问题:
还有就是如果我想在我的机子上运行服务器端程序,在别的ip地址下的另一台电脑运行客户端程序,那么那个address应该填的是外网ip,还是内网ip呢?


准确的说是:另一台电脑能用什么IP访问到你的电脑?
如果另一台电脑跟你是同一个局域网,那么内网IP就行了;
如果另一台电脑是互联网上的,那么必须是外网IP,但是也没这么简单;一般来说还需要在路由(或网关)上设置转发(或端口开放)规则等,才能把你本机的端口直接暴露到互联网上去。
------其他解决方案--------------------
首先谢谢你的回答,我知道mb_run(Address,port );这个address也可以换成用主机名来代替的,但你上面说的方法不行哦,我试了下,还是错啊,不知道是格式的问题,还是什么