亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求大神帶飛,客戶端向服務端發送信息成功,卻收不到響應,怎么回事?

package com.tcp;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;


public class Server {

/**

* 服務器端

*?

*/


public static void main(String[] args) {

int port = 8818;

try {

// 1.創建ServerSocket實例

ServerSocket serverSocket = new ServerSocket(port);

System.out.println("***服務器即將啟動,正在等待客戶機連接***");

// 調用accept()方法接收來自客戶機的Socket

Socket clintSocket = serverSocket.accept();

// 2.創建字節輸入流

InputStream is = clintSocket.getInputStream();

// 創建字符輸入流

InputStreamReader isr = new InputStreamReader(is);

// 給字符輸入流創建緩沖

BufferedReader br = new BufferedReader(isr);

String date = null;


// 3.當讀取數據不為空時,循環讀取

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

System.out.println("我是服務端,客戶端連接成功!");

System.out.println("接收到登陸請求,驗證信息如下:");

System.out.println(date);

}


// 4.返回給客戶端反饋信息

OutputStream os = clintSocket.getOutputStream();

// 將輸出流包裝為打印流

PrintWriter pw = new PrintWriter(os);

pw.write("歡迎您,在渣男路上越走越遠,登陸成功");

pw.flush();

// 5.關閉所有資源

//clintSocket.shutdownOutput();

pw.close();

os.close();

clintSocket.shutdownInput();// 關閉輸入流

br.close();

isr.close();

is.close();

clintSocket.close();

serverSocket.close();


} catch (IOException e) {


e.printStackTrace();

}

}


}



package com.tcp;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.io.Writer;

import java.net.Socket;

import java.net.UnknownHostException;


public class Clint {

/**

* 客戶端

*?

*/

public static void main(String[] args) {

String sss="用戶名:在渣男路上越走越遠? ?密碼:123456";

try {

//1.創建客戶端Socket

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

//2.創建輸出流

OutputStream os=socket.getOutputStream();

//將輸出流包裝為打印流

PrintWriter pw=new PrintWriter(os);

//3.調用writer()方法寫入內容

pw.write("用戶名:在渣男路上越走越遠? ?密碼:123456");

pw.flush();

System.out.println("******登陸界面******");

System.out.println(sss);

System.out.println("正在請求登陸......");

//4.接收來自服務器的反饋信息

InputStream is=socket.getInputStream();

//創建字符輸入流

InputStreamReader isr=new InputStreamReader(is);

//給字符輸入流創建緩沖

BufferedReader br =new BufferedReader(isr);

String date1 = null;

//當讀取數據不為空時,循環讀取

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

System.out.println(date1);

}

//5.關閉資源

//socket.shutdownInput();//關閉輸入流

br.close();

isr.close();

is.close();

socket.shutdownOutput();

pw.close();

os.close();

//socket.close();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}


}


}


正在回答

1 回答

你應該在客戶端進行輸出流完成之后就應該socket.shutdownOutput();而不是在最后才執行

0 回復 有任何疑惑可以回復我~
#1

溺鯨 提問者

謝謝,已經解決了
2019-07-08 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

求大神帶飛,客戶端向服務端發送信息成功,卻收不到響應,怎么回事?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號