第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

新手求教!使用序列化做的時(shí)候,我的服務(wù)器端拋出了空指針異常,該怎么修改呢?

服務(wù)器端

package com.imooc;


import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.ObjectInputStream;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.io.Writer;

import java.net.ServerSocket;

import java.net.Socket;

import java.net.UnknownHostException;


public class ObjectServer {


/**

* @param args

* @throws IOException?

* @throws UnknownHostException?

*/

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

// Socket socket=new Socket("localhost", 8888);

// System.out.println("InetAddress:"+socket.getInetAddress());

ServerSocket serverSocket=new ServerSocket(8888);

Socket socket = null;

InputStream is=null;

OutputStream os = null;

ObjectInputStream ois=null;

BufferedReader br = null;

PrintWriter pw = null;

try {

is=socket.getInputStream(); ? ? ?//【】【】這里就是出錯(cuò)的地方,第34行

ois=new ObjectInputStream(is);

String info;

while((info=br.readLine())!=null){

System.out.println("我是服務(wù)器,客戶端說:"+info);

}

socket.shutdownInput();

os=socket.getOutputStream();

pw=new PrintWriter(os);

pw.write("歡迎您!");

pw.flush();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

if(is!=null)

is.close();

if(os!=null)

os.close();

if(ois!=null)

ois.close();

if(br!=null)

br.close();

if(pw!=null)

pw.close();

if(socket!=null)

socket.close();

}


}


}


客戶端

package com.imooc;


public class User {


private String userName;

private String userKey;

public User(String userName,String userKey){

this.userName=userName;

this.userKey=userKey;

}

}

package com.imooc;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.ObjectOutputStream;

import java.io.OutputStream;

import java.net.Socket;

import java.net.UnknownHostException;



public class ObjectClient {


/**

* @param args

*/


public static void main(String[] args) {

try {

Socket socket=new Socket("localhost", 8888);

System.out.println("InetAddress:"+socket.getInetAddress());

OutputStream os=socket.getOutputStream();

//使用ObjectOutputStream對象序列化流,傳遞對象

ObjectOutputStream oos=new ObjectOutputStream(os);

User user=new User("admin", "123");

oos.writeObject(user);//序列化

socket.shutdownOutput();

BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));

String info=br.readLine();

while(info!=null){

System.out.println("我是客戶端,服務(wù)器說:"+info);

// info=br.readLine();

}

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


}


運(yùn)行服務(wù)器端ObjectServer類是拋出的異常如圖片所示http://img1.sycdn.imooc.com//579cb08a00015d2507230544.jpg

正在回答

2 回答

你的代碼寫錯(cuò)了,服務(wù)器端socket是由serverSocket.accept();來初始化,這樣獲取客戶端傳來的數(shù)據(jù),除此之外你的User類還需要實(shí)現(xiàn)序列化接口,implements Serializable,最好把set/get方法補(bǔ)上,JavaBean的習(xí)慣養(yǎng)好,另外如果報(bào)端口號占用的異常,你就把端口號改一下,因?yàn)槟惆蠢蠋煵襟E實(shí)踐可能8888端口之前已經(jīng)用過了。

//1、創(chuàng)建一個(gè)服務(wù)器端Socket,即serverSocket,指定綁定的端口
		ServerSocket?serverSocket=new?ServerSocket(8801);
		//2、調(diào)用accept方法開始監(jiān)聽,等待客戶端的連接
		System.out.println("***服務(wù)器即將啟動,等待客戶端的連接****");
		Socket?socket=serverSocket.accept();
		//3、獲取輸入流,并讀取客戶端信息
		InputStream?is=socket.getInputStream();//字節(jié)輸入流
		//反序列化
		ObjectInputStream?ois=new?ObjectInputStream(is);
		User?user=(User)ois.readObject();
		System.out.println("我是服務(wù)器,客戶端說:"+user.toString());


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

陳婉 提問者

非常感謝!
2016-08-01 回復(fù) 有任何疑惑可以回復(fù)我~

你可以在那行提示空指針的下面在寫一個(gè)}catch(NullPointerException e ){這樣就可以避免了,可以通過添加多個(gè)catch語句來規(guī)避遇到的多個(gè)異常。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

新手求教!使用序列化做的時(shí)候,我的服務(wù)器端拋出了空指針異常,該怎么修改呢?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號