java小白之路--客户端生成的exe文件执行后闪退

package Package;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyClient {
    public static void main(String[] args) throws UnknownHostException, IOException {
        Socket client = new Socket("localhost", 8888);
        
        //StringBuilder tmp = new StringBuilder();
        
        while(true)
        {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String obuffer = br.readLine();
        
        DataOutputStream os = new DataOutputStream(client.getOutputStream());
        DataInputStream is = new DataInputStream(client.getInputStream());
        
        //os.writeUTF(tmp.append("client->").append("hello server").toString());
        os.writeUTF(obuffer);
        os.flush();
        
            String ibuffer = is.readUTF();
            System.out.println(ibuffer);
        }
        
    }
}

改成如下==================================

package Package;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyClient {
    public static void main(String[] args) throws UnknownHostException, IOException {
        Socket client = new Socket("localhost", 8888);
        
        //StringBuilder tmp = new StringBuilder();
        String obuffer = "";
        DataOutputStream os = new DataOutputStream(client.getOutputStream());
        DataInputStream is = new DataInputStream(client.getInputStream());
        
        while(true)
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            
            while(null != (obuffer = br.readLine()))
            {
                
            
    //        String obuffer = "client->to server";
        
            
            //os.writeUTF(tmp.append("client->").append("hello server").toString());
            os.writeUTF(obuffer);
            os.flush();
            
                String ibuffer = is.readUTF();
                System.out.println(ibuffer);
            }
        }
        
    }
}

读终端输入的时候,加个死循环判断有没有东西输入,否则终端很快退出;

另外在eclipse调试的时候,即没有生成.exe文件的时候,不会出现闪退的情况 。

以上为个人工作经验总结,如有误点,欢迎指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值