Java基礎筆記-第十九記



java網絡編程三
TCP傳輸 客戶端

<span style="font-size:18px;">import java.io.OutputStream;
import java.net.Socket;
/*
 * 客戶端:
 * 通過查閱Socket對象,發現在該對象建立時,就可以去連接指定主機
 * 因爲tcp是面向連接的,所以在建立socket服務時,
 * 就要有服務端存在,並連接成功,形成通路後,在該通道進行數據的傳輸
 */
public class Demo4 {

	public static void main(String[] args) throws Exception {
		//創建客戶端的Socket服務,指定目的主機和端口
		Socket s = new Socket("192.168.30.88",10003);
		//爲了發送數據,應該獲取socket流中的輸出流
		OutputStream out = s.getOutputStream();
		//向服務器發送數據
		out.write("tcp is come on".getBytes());
		//關閉socket
		s.close();
	}
}</span>


TCP傳輸 服務端

<span style="font-size:18px;"><span style="white-space:pre">	</span>//1、建立服務端的socket服務,ServerSocket()
	//2、獲取連接過來的客戶端對象
	//  通過ServerSocket的accept方法,沒有連接就會等
	//3、客戶端如果發過來數據,那麼服務端要使用對應的客戶對象,並獲取 到該
	//客戶端對象的讀取流來讀取發過來的數據,並打印在控制檯
	//4、關閉客戶端
	//5、關閉服務器, 該步驟可選
	public static void main(String[] args) throws Exception {
		//建立服務端socket服務,並監聽一個端口
		ServerSocket ss = new ServerSocket(10003);

		//通過accept方法獲取連接過來的客戶端對象
		Socket s = ss.accept();
		String ip = s.getInetAddress().getHostAddress();
		System.out.println(ip+"is connected");
		//獲取客戶端發送過來的數據,那麼要使用客戶端對象的讀取流讀取數據
		InputStream in = s.getInputStream();
		
		byte[] buf = new byte[1024];
		int len = in.read(buf);
		
		System.out.println(new String(buf,0,buf.length));
		
		s.close();  //關閉客戶端
		ss.close();
		System.out.println("接收完畢");
	}</span>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章