Java网络编程聊天室——单线程(三)

根据上一个博客《Java网络编程聊天室——单线程(二)》我们可以发现,尽管程序已经写完,但是程序仍在本地工具中存放,并没有将它变成一个可执行程序。所以接下来我们要做的就是用maven将项目打包成一个可执行的Java程序。

根据(二)中的代码,我们会发现一个问题,就是端口号被我们设置为固定不变的,这会使得我们将项目发给客户是,如果客户的计算机里有相同的端口号的应用程序,则这个程序将无法使用。所以我们应该将端口号改为通过命令行获取。

一、通过命令行获取端口号

获取服务器端口号:

 try {
           //0.通过命令行获取服务器端口
           int port=7777;
           if(args.length>0){
               try {
                   port = Integer.parseInt(args[0]);
               }catch(NumberFormatException e){
                   System.out.println("端口参数不正确采用默认端口"+port);
               }
           }

           //1.创建ServerSocket
           ServerSocket serverSocket = new ServerSocket(port);
           System.out.println("服务器启动:"+serverSocket.getLocalSocketAddress());

获取客户端端口号:

try {
            //0.通过命令行获取端口号
            int port =7777;//默认端口号。
            if(args.length>0){
                try {
                    port = Integer.parseInt(args[0]);
                }catch(NumberFormatException e){
                    System.out.println("端口参数不正确采用默认端口"+port);
                }
            }
            String host="127.0.0.1";
            if(args.length>1){
                host=args[1];
                }

            //1.创建客户端,连接到服务器
            Socket clientSocket=new Socket(host,port);

 二、配置程序打包输出可执行Jar

(1)服务器配置:

 <!--配置程序打包输出可执行的Jar-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <archive>
                        <!--Java打包规范中的内容-->
                        <manifest>
                            <mainClass>com.single.chat.room.server.SingleServer</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

客户端配置:

 <!--配置程序打包输出可执行的Jar-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <archive>
                        <!--Java打包规范中的内容-->
                        <manifest>
                            <mainClass>com.single.chat.room.client.SingleClient</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

(2)点击打包:

 

(3)打包完成后可以看到两个Jar包

 

(4)我们将两个Jar包放在一个文件夹中,就可以使用了。我们打开命令窗口进行运行。

通过命令窗口显示,我们发现客户端与服务器进行一次访问后就自动关闭,这是因为单线程的原因。在程序运行过程中没有连续阻塞。所以后面我会详细介绍多线程聊天室。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值