課程
/后端開發(fā)
/Java
/Java Socket應用---通信是這樣練成的
為什么我的客戶端一啟動,服務器就關閉了
2018-11-26
源自:Java Socket應用---通信是這樣練成的 3-3
正在回答
emmm? 寫錯了一個語句? 看來還是要細心
try3994680
try3994680 回復 try3994680
客戶端:
package TCP;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
/**
?* 客戶端
?* @author 14431
?*
?*/
public class Client {
public static void main(String[] args) {
try {
//1.創(chuàng)建客戶端socket,指定服務器地址和端口
Socket socket =new Socket(InetAddress.getLocalHost(),6666);
//2.獲取輸出流,向服務器發(fā)送信息
OutputStream os= socket.getOutputStream();//字節(jié)輸出流
PrintWriter pw =new PrintWriter(os);//將輸出流包裝為打印流
pw.write("用戶名:admin;密碼:123");//發(fā)送信息
pw.flush();//刷新緩存,輸出信息
socket.shutdownInput();//關閉輸出流
//3.關閉資源
os.close();
pw.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
}
服務器:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
?* 基于TCP協議的Socket通信,實現用戶登錄
?*服務器端
public class Server {
//1.創(chuàng)建一個服務器的Socket,即ServerSocket,
//指定綁定端口,并監(jiān)聽端口
ServerSocket serverSocket =new ServerSocket(6666);
//2.調用accept()方法進行監(jiān)聽,等待客戶端連接
System.out.println("服務器啟動中......");
Socket socket =serverSocket.accept(); //若客戶端連接上,則會返回一個實例
//3.獲取輸入流,并讀取客戶端信息
InputStream is = socket.getInputStream();? //字節(jié)輸入流
InputStreamReader isr =new InputStreamReader(is); //轉換為字符輸入流
BufferedReader br =new BufferedReader(isr);
String info =br.readLine();
while((info=br.readLine())!=null) {
System.out.println("客戶端說:"+info);
info=br.readLine();
socket.shutdownInput();//關閉輸入流
//4.關閉資源
br.close();
is.close();
isr.close();
serverSocket.close();
舉報
分享的是 Java 中的網絡編程,使用Socket實現網絡聊天通信
4 回答為什么我只啟動了服務器端沒有啟動客戶端卻有一個客戶端自己啟動了
2 回答服務端啟動后 客戶端就不能用本機地址了呢
2 回答請問為什么客戶端的數據傳不到服務器,服務器的數據也傳不到客戶端,
2 回答服務器端響應客戶的報了差
2 回答服務器端的socket.shutdownOutput();和客戶端的socket.shutdownInput();
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優(yōu)惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-11-29
emmm? 寫錯了一個語句? 看來還是要細心
2018-11-26
客戶端:
package TCP;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
/**
?* 客戶端
?* @author 14431
?*
?*/
public class Client {
public static void main(String[] args) {
try {
//1.創(chuàng)建客戶端socket,指定服務器地址和端口
Socket socket =new Socket(InetAddress.getLocalHost(),6666);
//2.獲取輸出流,向服務器發(fā)送信息
OutputStream os= socket.getOutputStream();//字節(jié)輸出流
PrintWriter pw =new PrintWriter(os);//將輸出流包裝為打印流
pw.write("用戶名:admin;密碼:123");//發(fā)送信息
pw.flush();//刷新緩存,輸出信息
socket.shutdownInput();//關閉輸出流
//3.關閉資源
os.close();
pw.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服務器:
package TCP;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
/**
?* 基于TCP協議的Socket通信,實現用戶登錄
?* @author 14431
?*服務器端
?*/
public class Server {
public static void main(String[] args) {
try {
//1.創(chuàng)建一個服務器的Socket,即ServerSocket,
//指定綁定端口,并監(jiān)聽端口
ServerSocket serverSocket =new ServerSocket(6666);
//2.調用accept()方法進行監(jiān)聽,等待客戶端連接
System.out.println("服務器啟動中......");
Socket socket =serverSocket.accept(); //若客戶端連接上,則會返回一個實例
//3.獲取輸入流,并讀取客戶端信息
InputStream is = socket.getInputStream();? //字節(jié)輸入流
InputStreamReader isr =new InputStreamReader(is); //轉換為字符輸入流
BufferedReader br =new BufferedReader(isr);
String info =br.readLine();
while((info=br.readLine())!=null) {
System.out.println("客戶端說:"+info);
info=br.readLine();
}
socket.shutdownInput();//關閉輸入流
//4.關閉資源
br.close();
is.close();
isr.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}