如何创建基本的Java服务器

如何创建基本的Java服务器,第1张

以下是Sun提供的一个简单的“Knock Knock"”服务器

import java.net.*import java.io.*public class KnockKnockServer {

public static void main(String[] args) throws IOException {

ServerSocket serverSocket = null

try {

serverSocket = new ServerSocket(4444)

} catch (IOException e) {

System.err.println("Could not listen on port: 4444.")

System.exit(1)

}

Socket clientSocket = null

try {

clientSocket = serverSocket.accept()

} catch (IOException e) {

System.err.println("Accept failed.")

System.exit(1)

}

PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true)

BufferedReader in = new BufferedReader(

new InputStreamReader(

clientSocket.getInputStream()))

String inputLine, outputLine

KnockKnockProtocol kkp = new KnockKnockProtocol()

outputLine = kkp.processInput(null)

out.println(outputLine)

while ((inputLine = in.readLine()) != null) {

outputLine = kkp.processInput(inputLine)

out.println(outputLine)

if (outputLine.equals("Bye."))

break

}

out.close()

in.close()

clientSocket.close()

serverSocket.close()

}}

再简单不过了。

使用ServletSocket创建TCP服务器端

从图 中看上去TCP通信的两个通信实体之间并没有服务器端 客户端之分 但那是两个通信实体已经建立虚拟链路之后的示意图 在两个通信实体没有建立虚拟链路之前 必须有一个通信实体先做出 主动姿态 主动接收来自其他通信实体的连接请求

Java中能接受其他通信实体连接请求的类是ServerSocket ServerSocket对象用于监听来自客户端的Socket连接 如果没有连接 它将一直处于等待状态 ServerSocket包含一个监听来自客户端连接请求的方法

Socket accept() 如果接收到一个客户端Socket的连接请求 该方法将返回一个与客户端Socket对应的Socket(如图 所示每个TCP连接有两个Socket) 否则该方法将一直处于等待状态 线程也被阻塞

为了创建ServerSocket对象 ServerSocket类提供了如下几个构造器

ServerSocket(int port) 用指定的端口port来创建一个ServerSocket 该端口应该是有一个有效的端口整数值 ~

ServerSocket(int port int backlog) 增加一个用来改变连接队列长度的参数backlog

ServerSocket(int port int backlog InetAddress localAddr) 在机器存在多个 IP地址的情况下 允许通过localAddr这个参数来指定将ServerSocket绑定到指定的IP地址

当ServerSocket使用完毕 应使用ServerSocket的close()方法来关闭该ServerSocket 通常情况下 服务器不应该只接受一个客户端请求 而应该不断地接受来自客户端的所有请求 所以Java程序通常会通过循环 不断地调用ServerSocket的accept()方法 如下代码片段所示

//创建一个ServerSocket 用于监听客户端Socket的连接请求

ServerSocket ss = new ServerSocket( )

//采用循环不断接受来自客户端的请求

while (true)

{

//每当接受到客户端Socket的请求 服务器端也对应产生一个Socket

Socket s = ss accept()

//下面就可以使用Socket进行通信了

}

上面程序中创建ServerSocket没有指定IP地址 则该ServerSocket将会绑定到本机默认的IP地址 程序中使用 作为该ServerSocket的端口号 通常推荐使用 以上的端口 主要是为了避免与其他应用程序的通用端口冲突

       返回目录 疯狂Java讲义

       编辑推荐

       Java程序性能优化 让你的Java程序更快 更稳定

       新手学Java 编程

lishixinzhi/Article/program/Java/hx/201311/27266

1.由于服务器配置比较低综合考虑,选择ubuntu系统进行搭建

2. 登陆阿里云服务器:

方法一:使用xshell软件登陆服务器

主机填写ip地址

端口号选择22

连接登陆服务器

方法二:使用阿里云管理终端

ssh root@服务器ip地址

password:输入密码

3.如何上传文件

方法一:windows和linux上传或下载某个文件可以使用rz,sz

sudo apt-get install lrzsz

安装完成后进入准备存放改文件的文件夹输入rz,就会跳出文件选择框

例如:#cd apache-tomcat-7.0.69/bin  rz

cd后有空格

cd ~:返回最上层

cd ..:返回上一层

cd -:返回最近操作

方法二:使用xshell中的插件Xftp

4.安装及配置环境

安装lsb指令

ubunu快捷安装需要的命令,更新一下:

自带源在大陆不好,更新即可解决

1.sudo apt-get update  

2.apt-get install yum  yum install -y redhat-lsb

输入lsb指令查看当前版本

查看版本号

lsb_release -a查看当前位数

getconf LONG_BIT

安装jdk:

方法一:ubuntu自动安装jdk

sudo apt-get install jdk

安装完成后配置环境:

使用vim指定编辑etc目录下profile文件,添加export

#vim /etc/profile

添加进profile文件

JAVA_HOME=/home/java/jdk1.6.0_12

export JRE_HOME=/home/liujicheng/java/jdk1.6.0_12/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

//java存放位置请自行更改

//使用 which java 查看jdk所在文件夹

方法二:本地下载jdk上传

下载对应系统32位或64位的tar.gz文件

建议:经过还几次对服务器进行环境搭建,已经有了一点小小的见解,建议不要使用过低版本的JDK,例如服务器JDK版本为1.5而项目JDK版本为1.8的情况,就会出现无法服务器无法运行.war文件的情况,建议版本为1.7

上传tar.gz文件有两种方法

11.输入命令行 rz 选择安装包上传 1使用rz时,注意安装 2.通过xftp将上传

创建一个java文件夹

mkdir java

输入安装命令,将上传的.tar.gz文件解压到创建为java文件夹中

sudo tar -zxvf jdk-7u80-linux-x64.tar.gz -C /root/java

设置环境变量

使用vim指定编辑etc目录下profile文件,添加export

#vim /etc/profile添加进profile文件

JAVA_HOME=/root/java/jdk1.7.0_80

export JRE_HOME=/root/java/jdk1.7.0_80/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

//java存放位置请自行更改//使用 which java 查看jdk所在文件夹

选择E,然后输入i 进行写操作

最后 :x退出并保存

设置默认JDK

12345sudo update-alternatives --install /usr/bin/java java /root/java/jdk1.7.0_80/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /root/java/jdk1.7.0_80/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /root/java/jdk1.7.0_80/bin/jar 300  sudo update-alternatives --install /usr/bin/javah javah /root/java/jdk1.7.0_80/bin/javah 300  sudo update-alternatives --install /usr/bin/javap javap /root/java/jdk1.7.0_80/bin/javap 300

如果之后一个版本显示: 

There is only one alternative in link group java (providing /usr/bin/java):

/usr/lib/jvm/jdk1.7.0_60/bin/java

否者,选择合适的jdk

检查jdk是否安装成功,输出版本号及对应信息即安装成功

#java

#javac

#java -version

安装tomcat

方法一:ubuntu自动安装tomcat

sudo apt-get install tomcat

添加jdk和jre环境变量

JAVA_HOME=/home/java/jdk1.6.0_12

JRE_HOME=/home/homer/eclipse/jdk1.6.0_12/jre  

PATH=$JAVA_HOME/bin:$JRE_HOME:$PATH  

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  

TOMCAT_HOME=/opt/apache-tomcat-7.0.29  

启动tomcat

cd apache-tomcat-7.0.69/bin ./startup.sh

出现提示说明配置成功

方法二:上传tomcat并解压

通过上述上传文件方法上传后

使用tar指令解压

tar -zxvf apache-tomcat-8.0.24.tar.gz

然后进入apache-tomcat-7.0.69文件夹

# cd apache-tomcat-8.0.24 /bin/

启动tomcat

cd apache-tomcat-8.0.24 /bin/ ./startup.sh

显示如下说明成功

最后输入:http://x.x.x.x:8080/   (x代表ip地址),显示tomcat首页说明配置成功

安装Mysql

ubuntu下自动安装

sudo apt-get install mysql-server

apt-get install mysql-client

sudo apt-get install libmysqlclient-dev

设置数据库密码:

检查Mysql是否安装成功

sudo netstat -tap | grep mysql

登陆Mysql

mysql -uroot -p密码

成功:

查看数据库

show databases

将.sql文件导入

//先选定数据库

use iswust        

source /root/test.sql//source /文件夹/sql文件名

select * from score

5.java工程打包上传并运行

右键选中java项目,WAR Export 将文件以war格式导出

(注意:java工程的jdk一定要先降低到与服务器的jdk版本相同,例如java工程为1.8而服务器为1.6则会报错)

降低jdk方法:

并通过XFTP或上述的上传文件方法,上传至apache-tomcat-7.0.69/webapps中


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/535753.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-24
下一篇2023-06-24

发表评论

登录后才能评论

评论列表(0条)

    保存