目錄
tcp網路程式設計練習
練習一:客戶端傳送資訊給服務端,服務端將資料顯示在控制台上。
客戶端:
服務端練習二:客戶端傳送檔案給伺服器,服務端將檔案儲存在本地。
客戶端:
服務端:
練習三:在案例二的基礎上,接收成功後,返回給客戶端,接收成功!然後客戶端才關閉連線!
客戶端:
服務端:
com.kou.lesson2;
import
j**a.io.ioexception;
import
j**a.io.outputstream;
import
j**a.net.inetaddress;
import
j**a.net.socket;
import
j**a.net.unknownhostexception;
//客戶端
public
class
tcpclientdemo01
catch
(unknownhostexception e)
catch
(ioexception e)
finally
if (socket!=null)}
catch
(ioexception e) }}
}com.kou.lesson2;
import
j**ax.sound.midi.soundbank;
import
j**a.io.bytearrayoutputstream;
import
j**a.io.ioexception;
import
j**a.io.inputstream;
import
j**a.net.serversocket;
import
j**a.net.socket;
import
j**a.util.base64;
//服務端
public
class
tcpserverdemo01 **/
baos = new
bytearrayoutputstream();
byte buffer = new
byte[1024];
intlen;
while ((len=is.read(buffer))!=-1)
system.out.println(baos.tostring());
system.out.println(
} catch
(ioexception e)
finally
if (is!=null
)if (accept!=null
)if (serversocket!=null)}
catch
(exception e)}}
}com.kou.lesson3;
import
j**a.io.file;
import
j**a.io.fileinputstream;
import
j**a.io.outputstream;
import
j**a.net.inetaddress;
import
j**a.net.socket;
//客戶端
public
class
tcpclientdemo02
//5. 資源關閉,應該使用 try-catch-finally
fis.close();
os.close();
socket.close();}}
點選並拖拽以移動
com.kou.lesson3;
import j**a.io.*;
import
j**a.net.serversocket;
import
j**a.net.socket;
//服務端
public
class
tcpserverdemo02
//5.關閉資源,應該使用 try-catch-finally
fos.close();
is.close();
socket.close();
serversocket.close();}}
啟動服務端,啟動客戶端,接收成功!
com.kou.lesson4;
import j**a.io.*;
import
j**a.net.inetaddress;
import
j**a.net.socket;
//客戶端
public
class
tcpclientdemo03
//告訴伺服器,我傳輸完了,關閉資料的輸出,不然就會一直阻塞!
socket.shutdownoutput();
//先別關,等待伺服器響應,響應到控制台
inputstream inputstream =socket.getinputstream();
bytearrayoutputstream baos = new
bytearrayoutputstream();
byte buffer2 = new
byte[1024];
intlen2;
while ((len2=inputstream.read(buffer2))!=-1)
system.out.println(baos.tostring());
//5. 資源關閉,應該使用 try-catch-finally
baos.close();
inputstream.close();
fis.close();
os.close();
socket.close();}}
com.kou.lesson4;
import
j**a.io.file;
import
j**a.io.fileoutputstream;
import
j**a.io.inputstream;
import
j**a.io.outputstream;
import
j**a.net.serversocket;
import
j**a.net.socket;
//服務端
public
class
tcpserverdemo03
//通知客戶端接收成功
outputstream outputstream =socket.getoutputstream();
outputstream.write("檔案已經成功收到".getbytes());
//5.關閉資源,應該使用 try-catch-finally
outputstream.close();
fos.close();
is.close();
socket.close();
serversocket.close();}}
TCP網路程式設計
基於tcp 通訊模型 由上圖可以得出tcp通訊的步驟如下 服務端 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到socket上,用函式bind 3 設定允許的最大連線數,用函式listen 4 等待來著客戶端的連線請求,用函式accept 5 收發資料,用函式send 和...
網路程式設計 TCP
客戶端 1.建立客戶端的socket服務,指定目的主機和埠 2.為了傳送資料,應該獲取socket中的輸出流 3.獲取socket中的輸入流來獲取服務端的反饋資料 4.關閉資源 服務端 1.建立服務端的serversocket服務,並監聽乙個埠 2.通過accept方法 等待並獲取連線過來的客戶端s...
網路程式設計 TCP
即有傳送緩衝區 接收緩衝區,傳送次數和接收次數不一定對等。報頭長,成本高,需要搭載更多的資料。1.三次握手 通過對ack的確認,建立可靠連線。有超時重傳機制 2.四次揮手 有可能伺服器處理資料的時間較短,即三次揮手 3.狀態圖 2 保證遲來的資料報能被識別並丟棄 4.tcp狀態轉移過程 5.tcp報...