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