網(wǎng)絡(luò)編程-Socket通信實現(xiàn)服務(wù)器與客戶端互傳文件(JAVA語言實現(xiàn))
在網(wǎng)絡(luò)通信協(xié)議下,實現(xiàn)網(wǎng)絡(luò)互連的不同計算機上運行的程序間可以進行數(shù)據(jù)交換.
網(wǎng)絡(luò)編程三要素:ip地址、端口、協(xié)議
ip地址:
每臺計算機指定的一個標識符,127.0.0.1是回送地址,可以代表本機地址 ,一般用來測試使用
ipconfig:命令行中查看本機地址
ping ip地址:檢查網(wǎng)絡(luò)是否連通
端口
兩個應(yīng)用程序的通信。IP地址是可以唯一標識網(wǎng)絡(luò)中的設(shè)備,端口就是可以唯一標識設(shè)備中的應(yīng)用程序。
端口號:用兩個字節(jié)表示的整數(shù),它的取值范圍是0-65535.其中0-1023之間的端口號用于一些知名的網(wǎng)絡(luò)服務(wù)和應(yīng)用,普遍的應(yīng)用程序要使用1024以上。
協(xié)議:
連接和通信的規(guī)則稱為網(wǎng)絡(luò)的通信協(xié)議.
常見的協(xié)議UDP和tcp
UDP:用戶數(shù)據(jù)報協(xié)議.
無連接的通信協(xié)議,即使在傳輸數(shù)據(jù)的時候,發(fā)送端和接收端不建立連接.
消耗資源小,通信效率高.
UDP適用于音頻,視頻和普通數(shù)據(jù)的傳輸.
TCP:傳輸控制協(xié)議
是面向連接的同學(xué),即傳輸數(shù)據(jù)之前,在發(fā)送端和接收端建立邏輯連接,然后再傳輸數(shù)據(jù).
兩臺計算機無差錯的數(shù)據(jù)傳授.
需要經(jīng)過三次握手,四次揮手
三次握手:
-
客戶端向服務(wù)器端發(fā)出連接請求,等待服務(wù)確認
-
服務(wù)器端向客戶端回送一個響應(yīng),通知客戶端收到了連接請求
-
客戶端再次向服務(wù)器端發(fā)送確認信息,確認連接
TCP是可以保證數(shù)據(jù)的安全的傳輸,上傳文件,下載文件等等
Socket實現(xiàn)客戶端向服務(wù)器發(fā)送文件
先運行服務(wù)器,再運行客戶端部分的代碼。
serverDemo02.java文章來源:http://www.zghlxwxcb.cn/news/detail-413513.html
package demo02;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo02 {
public static void main(String[] args) throws Exception{
//創(chuàng)建服務(wù)
ServerSocket serverSocket = new ServerSocket(9000);
//監(jiān)聽客戶端連接
Socket socket = serverSocket.accept();//阻塞式監(jiān)聽會一直等待客戶端連接
//獲取輸入流
InputStream is = socket.getInputStream();
//文件輸出
File file=new File("E:/receive3.jpg");//接收文件地址
FileOutputStream fos = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) != -1) {
fos.write(buffer,0,len);
}//關(guān)閉資源
fos.close();
is.close();
socket.close();
serverSocket.close();
}
}
clientDemo02.java文章來源地址http://www.zghlxwxcb.cn/news/detail-413513.html
package demo02;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class clientDemo02 {
public static void main(String[] args) throw
到了這里,關(guān)于網(wǎng)絡(luò)編程-Socket通信實現(xiàn)服務(wù)器與客戶端互傳文件(JAVA語言實現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!