網路程式設計(自用小結筆記)

2021-10-12 15:37:15 字數 4071 閱讀 6855

一、實現網路通訊需要解決的兩個問題

二、網路通訊的兩個要素

三、通訊要素一:ip和埠號

1.ip的理解

四、通訊要素二:網路通訊協議

1.分類模型

2.tcp 和udp的區別

3.tcp三次握手和四次揮手

**示例1:客戶端傳送資訊給服務端,服務端將資料顯示在控制台上

//客戶端

@test

public

void

client()

catch

(ioexception e)

finally

catch

(ioexception e)}if

(socket != null)

catch

(ioexception e)}}

}//服務端

@test

public

void

server()

//4.讀取輸入流中的資料

baos =

newbytearrayoutputstream()

;byte

buffer =

newbyte[5

];int len;

while

((len = is.

read

(buffer))!=

-1) system.out.

println

(baos.

tostring()

);system.out.

println

("收到了來自於: "

+ socket.

getinetaddress()

.gethostaddress()

+"的資料");

}catch

(ioexception e)

finally

catch

(ioexception e)}if

(is != null)

catch

(ioexception e)}if

(socket != null)

catch

(ioexception e)}if

(ss != null)

catch

(ioexception e)}}

}

**示例2:客戶端傳送檔案給服務端,服務端將檔案儲存在本地

@test

public

void

client()

}catch

(ioexception e)

finally

catch

(ioexception e)}if

(os != null)

catch

(ioexception e)}if

(socket != null)

catch

(ioexception e)}}

}@test

public

void

server()

}catch

(ioexception e)

finally

catch

(ioexception e)}if

(is != null)

catch

(ioexception e)}if

(socket != null)

catch

(ioexception e)}if

(ss != null)

catch

(ioexception e)}}

}

**示例3:從客戶端傳送檔案給服務端,伺服器儲存到本地,並返回「傳送成功」給客戶端,並關閉相應的連線。

@test

public

void

client()

throws ioexception

//關閉資料的輸出

socket.

shutdownoutput()

;//5.接受來自於伺服器端的資料,並顯示到控制台上

inputstream is = socket.

getinputstream()

; bytearrayoutputstream baos =

newbytearrayoutputstream()

; buffer =

newbyte[20

];int len1;

while

((len1 = is.

read

(buffer))!=

-1) system.out.

println

(baos.

tostring()

);//6 fis.

close()

; os.

close()

; socket.

close()

; baos.

close()

;}/* 這裡涉及到的異常,應該使用try-catch-finally處理

*/@test

public

void

server()

throws ioexception

system.out.

println

("傳輸完成");

//6.伺服器端給予客戶端反饋

outputstream os = socket.

getoutputstream()

; os.

write

("你好,**我已收到!"

.getbytes()

);//7.

fos.

close()

; is.

close()

; socket.

close()

; ss.

close()

; os.

close()

;}

**示例:

//傳送端

@test

public

void

sender()

throws ioexception

//接收端

@test

public

void

receiver()

throws ioexception

1.url(uniform resource locator)的理解:統一資源定位符,對應著網際網路的某一資源位址

2.url的5個基本結構

3.如何例項化:

url url = new url("http://localhost:8080/examples/jisoo.jpg?username=tom");
4.常用方法:

網路程式設計(自用)

埠 應用程式用於資料互動的通道,用於實現程式間通訊,每個應用程式都有固定的埠號。常見埠 協議 埠號 telnet協議 tel 23 簡單郵件傳輸協議 smtp 25 檔案傳輸協議 ftp 21 超文字傳輸協議 http 30 tcp協議 比較可靠的雙向流協議 三次握手 提供訊息確認,錯誤檢測和錯誤恢...

網路程式設計小結

做了乙個 tcp 和udp的服務端,但是現在測試老有問題,就是udp總會有那麼幾次超時,原因還沒找到,不過先總結一下網路的程式設計。首先預設的狀態下,recvfrom和recv都是阻塞的狀態,也就是沒接收到會一直阻塞,知道返回,但是可以通過select設定超時 timeval twait twait...

網路程式設計小結

memset mdataofcfg,0,sizeof mdataofcfg const char configfile debug config.cfg htons 把unsigned short型別從主機序轉換到網路序 htonl 把unsigned long型別從主機序轉換到網路序 ntohs ...