首先确保jdk安装成功:java -version

java服务器内存得不到释放 java内部服务器错误_服务器端

导出server.java文件为server.jar:

java服务器内存得不到释放 java内部服务器错误_云服务_02

 

java服务器内存得不到释放 java内部服务器错误_服务器端_03

然后将server.jar文件上传到云服务器

运行:

java服务器内存得不到释放 java内部服务器错误_java服务器内存得不到释放_04

 

注意事项:java聊天室客户端访问不了服务器,java.net.ConnectException: Connection timed out: connect,原因分析:

1.云服务器端口没有开启,这就要登录云服务器开启端口,(阿里云默认的端口是关闭的)。//修改之后一般要等几分钟的

2.可以试试关闭本地电脑防火墙,(因为本人测试在局域网条件下的两台电脑开java聊天室时失败,就是因为没有关闭防火墙,关了之后就连加上了)

3.客户端代码中的ip要正确,比如:在一个电脑同时开服务器端和用户端时可为localhost,socket=new Socket("localhost",8888);

在局域网条件下开不同电脑时要连局域网ip:192.168. 开头;同理,服务器端代码发布到云服务器上时,要填写相应的ip

以上本人亲测,都成功了的:

java服务器内存得不到释放 java内部服务器错误_java服务器内存得不到释放_05

(这里可能就要疑问了,把连接云服务器的软件Xshell关了之后就访问不了了,为什么,这就像在本地运行server.java服务器端一样,你关了eclipse就相当于把这个服务给关了,怎么可能还能访问呢!这种情况就可以参考qq,或微信咯)本来是这样想的,但发现别人关闭Xshell后,依然可以连接,这就好玩了。。。初步猜想是java根本就没有安装到云服务器阿里,只是安装在了本地Xshell,随后进入阿里官网控制台打开远程连接,进入root,输入java,提示bash: java: command not found,然后退出root时,再输入java,有东西了,再输入java -version,提示java version "1.8.0_201",这说明java安装到了阿里服务器里的普通用户下了,难道是代码问题???

概括:远程会话/断开连接后让程序仍继续在后台执行,

原因分析:断开连接后,终端会收到SIGHUP(hang-up 挂断)信号从而关闭该会话期的子进程。

解决方法:  

 1、使用nohup命令: nohup <command> [argument…] &             ,nohup可以屏蔽SIGHUP信号!(处理简单进程)

      nohup <command> [argument…] &

2、使用 screen命令。(处理复杂的需要人机交互的任务)

//查看是否有screen
[root@asdfsdfa ~]# rpm -qa|grep screen
xscreensaver-4.18-5.rhel4.11
screen-4.0.2-5

//安装方法
CentOS系统:yum install screen
Debian 系统:apt-get install screen

//使用
1.直接在命令行键入screen命令
[root@tivf06 ~]# screen

Screen将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样。在该窗口中键入exit退出该窗口,如果这是该screen会话的唯一窗口,该screen会话退出,否则screen自动切换到前一个窗口。

2.Screen命令后跟你要执行的程序。
[root@tivf06 ~]# screen vi test.c
//Screen创建一个执行vi test.c的单窗口会话,退出vi将退出该窗口/会话。

3.以上两种方式都创建新的screen会话。我们还可以在一个已有screen会话中创建新的窗口。在当前screen窗口中键入C-a c,即Ctrl键+a键,之后再按下c键,screen 在该会话内生成一个新的窗口并切换到该窗口。

screen还有更高级的功能。你可以不中断screen窗口中程序的运行而暂时断开(detach)screen会话,并在随后时间重新连接(attach)该会话,重新控制各窗口中运行的程序。例如,我们打开一个screen窗口编辑/tmp/abc文件:

[root@tivf06 ~]# screen vi /tmp/abc

之后我们想暂时退出做点别的事情,比如出去散散步,那么在screen窗口键入C-a d,Screen会给出detached

java服务器内存得不到释放 java内部服务器错误_云服务_06

使用screen之后,直接关闭Xshell,或其他终端,socket不会断了

java服务器内存得不到释放 java内部服务器错误_java服务器内存得不到释放_07


 

能看到这里的同学,说明本博客或多或少对您有所帮助,所以记得点一下?,因为看到有点赞还是有点成就的,嘻嘻