
网络通信可分为两种模式:TCP有连接的通信
UDP无连接的通信
依照上述的问题我可以理解为你是要进行有连接的通信。是要经过三次握手才能实现可靠的连接
第一次:建立连接时三次握手,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN(Synchronize Sequence Numbers)同步序列号。
服务器端即可使用:
Socket s=serverSocketaccept();
String clientIP=sgetInetAddress()toString();
这就实现了java服务器端获取到连接此服务器的客户端的IP了,你若想实现获取所有连接此服务器的客户端的IP,你可以把每次accept()返回的socket放进全局的Vector里面,然后在遍历这个vector方法就同上代码咯……
服务器安装的 *** 作系统通常是windows、linux,当安装布署时,都会安装相应的应用软件,例如IIS,Apache,NET,JAVA,ORACLE,SQLserver,mysql等。当服务端都安装好后,经常遇到客户端无法访问的情况,要如何判断及处理IP地址的开放端口情况呢?
1、举例:linux服务器安装了Oracle软件,但同一网段局域网内的客户端无法访问。
2、 通常为了保障服务器的安全,许多端口都是默认不打开的,例如ORACLE的默认端口1521,在linux中也是不打开的。
3、 在windows客户端中运行CMD命令打开DOS命令执行窗口,运行命令:"telnet 19216802 1521" (IP地址要改为对应的服务器地址)
这命令是用于访问服务器上的相应端口,如果服务器的端口没打开,那么就会提示连接失败;
4、windows server的 *** 作系统要在防火墙中开放端口,linux *** 作系统要在iptables中增加打开端口的配置信息。
5、
服务器上的相应端口打开后,在客户端运行命令:"telnet 19216802 1521" ,当命令窗口跳为全黑,或者出现应用的名称提示,那么就说明端口正常连上了。 总之没有提示连接失败,那么就表示连成功了。
通过IP只能进行通信,要想 *** 作远程计算机,必须在远程计算机中运行自己写好的java程序,监听你通过socket之类发送的消息,根据消息内容,进行制定 *** 作,如果只是本地计算机写一个程序 *** 作远程,必然是不可能的 首先你都没权限
import javaioBufferedReader;
import javaioDataInputStream;
import javaioDataOutputStream;
import javaioInputStreamReader;
import javanetSocket;
public class Client {
public static void main(String[] args) throws Exception {
Socket clientSocket = new Socket("127001", 8008);
clientSocketclose();
}
}
没有异常就是可以连接了。
以上就是关于java服务端如何获得客户端的ip全部的内容,包括:java服务端如何获得客户端的ip、如何查看IP地址的开放端口情况、JAVA中如何通过IP 、端口连接到远程计算机,并读取文件。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)