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();
}
}
}
}
相關文章
- JAVANIO學習筆記1-架構簡介Java筆記架構
- 學習筆記(一)筆記
- kitten 學習教程(一) 學習筆記筆記
- LaTeX學習筆記:一筆記
- ANFIS學習筆記(一)筆記
- Angular 學習筆記(一)Angular筆記
- GOLang 學習筆記(一)Golang筆記
- oracle學習筆記《一》Oracle筆記
- React 學習筆記【一】React筆記
- Jquery學習筆記(一)jQuery筆記
- goLang學習筆記(一)Golang筆記
- Canvas學習筆記(一)Canvas筆記
- SCSS學習筆記(一)CSS筆記
- vue學習筆記一Vue筆記
- Kettle學習筆記(一)筆記
- kafka學習筆記(一)Kafka筆記
- Cesium學習筆記(一)筆記
- opencv學習筆記(一)OpenCV筆記
- 深度學習 筆記一深度學習筆記
- Maven 學習筆記一Maven筆記
- css學習筆記(一)CSS筆記
- 學習Mysql筆記(一)MySql筆記
- redux 學習筆記(一)Redux筆記
- clojure學習筆記(一)筆記
- git學習筆記(一)Git筆記
- SQLite學習筆記(一)SQLite筆記
- 【筆記】statspack 學習(一)筆記
- undo 學習筆記一筆記
- mongodb學習筆記一MongoDB筆記
- Jquery學習筆記一jQuery筆記
- Lua學習筆記(一)筆記
- unity學習筆記(一)Unity筆記
- 高等數學學習筆記(一)筆記
- Selenium 學習筆記 (一)筆記
- Python 學習筆記(一)Python筆記
- github--學習筆記(一)Github筆記
- Apache Oozie學習筆記(一)Apache筆記
- MySQL學習筆記之一MySql筆記