java里socket客户端怎么自动绑定服务器ip
我在我的电脑上写的客户端和服务器程序,但每次重启电脑我的ip就变了,也就是服务器ip变了,那么客户端怎么才能自动获得服务器的ip呢?...
我在我的电脑上写的客户端和服务器程序,但每次重启电脑我的ip就变了,也就是服务器ip变了,那么客户端怎么才能自动获得服务器的ip呢?
展开
展开全部
java中的socket客户端只需用服务器所在机器的ip以及服务器的端口作为参数创建一个Socket对象就可以了,客户端的代码可以看下实例:
Socket socket = new Socket("168.160.12.42",9998);
或:
Socket socket = new Socket(InetAddress.getLocalHost(),5678); // 向主机名为InetAddress.getLocalHost()的服务器申请连接
客户机必须知道有关服务器的IP地址,对于着一点Java也提供了一个相关的类InetAddress 该对象的实例必须通过它的静态方法来提供,它的静态方法主要提供了得到本机IP 和通过名字或IP直接得到InetAddress的方法。
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
以上的程序代码建立了一个Socket对象,这个对象连接到ip地址为168.160.12.42的主机上、端口为9998的服务器对象。并且建立了输入流和输出流,分别对应服务器的输出和客户端的写入。
Socket socket = new Socket("168.160.12.42",9998);
或:
Socket socket = new Socket(InetAddress.getLocalHost(),5678); // 向主机名为InetAddress.getLocalHost()的服务器申请连接
客户机必须知道有关服务器的IP地址,对于着一点Java也提供了一个相关的类InetAddress 该对象的实例必须通过它的静态方法来提供,它的静态方法主要提供了得到本机IP 和通过名字或IP直接得到InetAddress的方法。
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
以上的程序代码建立了一个Socket对象,这个对象连接到ip地址为168.160.12.42的主机上、端口为9998的服务器对象。并且建立了输入流和输出流,分别对应服务器的输出和客户端的写入。
追问
InetAddress.getLocalHost()这个是返回本地主机,我如果把服务器端放在别的电脑上,那客户端能正常运行吗?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
展开全部
使用“127.0.0.1”
不管你的电脑ip变成多少,“127.0.0.1”代指 本机ip
不管你的电脑ip变成多少,“127.0.0.1”代指 本机ip
追问
我现在的想法是把服务器放到别的机器上,然后启动客户端去连接,怎么实现呢?
追答
在服务端启动socket监听程序,客户端去连服务器的IP地址就行了!
举例(手写伪代码) :
在服务器端
Socket sock=new Socket("8080");
while(true){
data = sock.getInputStream();
//data 转成String型的数据str
if("msg"。equals(str)){
//todo....
}
}
在客户端
public static void main(String[] args) {
Socket sock = new Socket("服务器IP", "8080");
BufferedOutputStream out = new BufferedOutputStream(sock.getOutputStream());
out.write("msg".getBytes());
out.flush();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询