tcp接收
public class SocketTest extends AbstractTests {
@Test
public void sockerServer() throws IOException {
System.out.println("進入到了socket中");
/**
* 基於TCP協議的Socket通信,實現用戶登錄,服務端
*/
//1、創建一個服務器端Socket,即ServerSocket,指定綁定的端口,並監聽此端口
ServerSocket serverSocket = new ServerSocket(10086);//1024-65535的某個端口
//2、調用accept()方法開始監聽,等待客戶端的連接
// Socket socket = serverSocket.accept();
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
OutputStream os =null;
PrintWriter pw =null;
while (true) {
Socket socket = serverSocket.accept();
//3、獲取輸入流,並讀取客戶端信息
is = socket.getInputStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
String info = null;
while ((info = br.readLine()) != null) {
System.out.println("我是服務器,客戶端說:" + info);
}
socket.shutdownInput();//關閉輸入流
//4、獲取輸出流,響應客戶端的請求
os = socket.getOutputStream();
pw = new PrintWriter(os);
pw.write("歡迎您!");
pw.flush();
//5、關閉資源
pw.close();
os.close();
br.close();
isr.close();
is.close();
// socket.close();
// serverSocket.close();
}
}
@Test
public void socketClient() throws IOException {
//客戶端
//1、創建客戶端Socket,指定服務器地址和端口
Socket socket = new Socket("192.168.9.163", 10086);
//2、獲取輸出流,向服務器端發送信息
OutputStream os = socket.getOutputStream();//字節輸出流
PrintWriter pw = new PrintWriter(os);//將輸出流包裝成打印流
pw.write("用戶名:admin;密碼:12345");
pw.flush();
socket.shutdownOutput();
//3、獲取輸入流,並讀取服務器端的響應信息
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String info = null;
while ((info = br.readLine()) != null) {
System.out.println("我是客戶端,服務器說:" + info);
}
//4、關閉資源
br.close();
is.close();
pw.close();
os.close();
socket.close();
}
}