當前位置:編程學習大全網 - 編程語言 - 如何通過Socket TCP發送並接收壹個文件

如何通過Socket TCP發送並接收壹個文件

主要是妳通過socket api封裝要發送的數據,內部會自動封裝成數據流進行傳輸。

1,什麽是Socket

網絡上的兩個程序通過壹個雙向的通訊連接實現數據的交換,這個雙向鏈路的壹端稱為壹個Socket。Socket通常用來實現客戶方和服務方的連接。Socket是TCP/IP協議的壹個十分流行的編程界面,壹個Socket由壹個IP地址和壹個端口號唯壹確定。

但是,Socket所支持的協議種類也不光TCP/IP壹種,因此兩者之間是沒有必然聯系的。在Java環境下,Socket編程主要是指基於TCP/IP協議的網絡編程。

2,Socket通訊的過程

Server端Listen(監聽)某個端口是否有連接請求,Client端向Server 端發出Connect(連接)請求,Server端向Client端發回Accept(接受)消息。壹個連接就建立起來了。Server端和Client 端都可以通過Send,Write等方法與對方通信。

對於壹個功能齊全的Socket,都要包含以下基本結構,其工作過程包含以下四個基本的步驟:

(1) 創建Socket;

(2) 打開連接到Socket的輸入/出流;

(3) 按照壹定的協議對Socket進行讀/寫操作;

(4) 關閉Socket.(在實際應用中,並未使用到顯示的close,雖然很多文章都推薦如此,不過在我的程序中,可能因為程序本身比較簡單,要求不高,所以並未造成什麽影響。)

3,創建Socket

創建Socket

java在包java.net中提供了兩個類Socket和ServerSocket,分別用來表示雙向連接的客戶端和服務端。這是兩個封裝得非常好的類,使用很方便。其構造方法如下:

Socket(InetAddress address, int port);

Socket(InetAddress address, int port, boolean stream);

Socket(String host, int prot);

Socket(String host, int prot, boolean stream);

Socket(SocketImpl impl)

Socket(String host, int port, InetAddress localAddr, int localPort)

Socket(InetAddress address, int port, InetAddress localAddr, int localPort)

ServerSocket(int port);

ServerSocket(int port, int backlog);

ServerSocket(int port, int backlog, InetAddress bindAddr)

Socket client = new Socket("127.0.01.", 80);

ServerSocket server = new ServerSocket(80);

在創建socket時如果發生錯誤,將產生IOException,在程序中必須對之作出處理。所以在創建Socket或ServerSocket是必須捕獲或拋出例外。

  • 上一篇:iOS設置輸入法的詳細步驟介紹
  • 下一篇:js怎樣獲取excel導出控件
  • copyright 2024編程學習大全網