javaNIO學習筆記一
傳統IO
第一步
輸入命令cmd 開啟控制檯,輸入 telnet 127.0.0.1 10101連線上服務端。
按ctrl+] 開啟回顯,輸入send hello傳送訊息1
第二步
輸入命令cmd 開啟控制檯,輸入 telnet 127.0.0.1 10101連線上服務端。
按ctrl+] 開啟回顯,輸入send hello2傳送訊息2
第三步
這時,發現服務端阻塞,只接收到一個訊息。
第四步
關閉命令列視窗1,發現這時才接收到第二個訊息。
原始碼
package OIO;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 傳統socket服務端
* @author -琴獸-
*
*/
public class OioServer2 {
// telnet 127.0.0.1 10101
//@SuppressWarnings("resource")
public static void main(String[] args) throws Exception {
//建立socket服務,監聽10101埠
ServerSocket server=new ServerSocket(10101);
System.out.println("伺服器啟動!");
while(true){
//獲取一個套接字(阻塞)
final Socket socket = server.accept();
System.out.println("來個一個新客戶端!");
//業務處理
handler(socket);
}
}
/**
* 讀取資料
* @param socket
* @throws Exception
*/
public static void handler(Socket socket){
try {
byte[] bytes = new byte[1024];
InputStream inputStream = socket.getInputStream();
while(true){
//讀取資料(阻塞)
int read = inputStream.read(bytes);
if(read != -1){
System.out.println(new String(bytes, 0, read));
}else{
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
System.out.println("socket關閉");
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
相關文章
- 學習筆記(一)筆記
- kitten 學習教程(一) 學習筆記筆記
- Angular 學習筆記(一)Angular筆記
- React 學習筆記【一】React筆記
- vue學習筆記一Vue筆記
- Canvas學習筆記(一)Canvas筆記
- Jquery學習筆記(一)jQuery筆記
- goLang學習筆記(一)Golang筆記
- Android學習筆記一Android筆記
- css學習筆記(一)CSS筆記
- SCSS學習筆記(一)CSS筆記
- 深度學習 筆記一深度學習筆記
- ANFIS學習筆記(一)筆記
- Selenium 學習筆記 (一)筆記
- Kettle學習筆記(一)筆記
- Spring學習筆記(一)Spring筆記
- Matlab學習筆記(一)Matlab筆記
- opencv學習筆記(一)OpenCV筆記
- LaTeX學習筆記:一筆記
- GOLang 學習筆記(一)Golang筆記
- Python 學習筆記(一)Python筆記
- TS學習筆記(一)筆記
- unity學習筆記(一)Unity筆記
- oracle學習筆記《一》Oracle筆記
- Cesium學習筆記(一)筆記
- SpringMVC學習筆記(一)SpringMVC筆記
- kafka學習筆記(一)Kafka筆記
- 高等數學學習筆記(一)筆記
- 深度學習 DEEP LEARNING 學習筆記(一)深度學習筆記
- MySQL學習筆記之一MySql筆記
- 拉丁語學習筆記 一筆記
- Apache ShenYu 學習筆記一Apache筆記
- github--學習筆記(一)Github筆記
- c#學習筆記(一)C#筆記
- react native學習筆記(一)React Native筆記
- Apache Oozie學習筆記(一)Apache筆記
- numpy的學習筆記\pandas學習筆記筆記
- linux學習筆記---一些命令學習Linux筆記
- 線性代數學習筆記(二)+貪心學習筆記(一)(2024.10.5)筆記