TCP傳輸協(xié)議,也稱之為套接字連接,比較安全塞耕,三次握手!蚀腿,必須確保對(duì)方計(jì)算機(jī)存在,才能連接扫外,而且是長(zhǎng)時(shí)間連接莉钙。
缺點(diǎn)是傳輸速度有點(diǎn)慢。
你用 socket 去連接 ServiceSocaket 服務(wù)器端筛谚,ServiceSocaket 會(huì)創(chuàng)建一個(gè)磁玉,Sockets 然后你的Socket ,連接服務(wù)器端創(chuàng)建的Socket 最后你的Socket 和 服務(wù)器端的 Socket 都會(huì)創(chuàng)建一個(gè) OutputStrea 和InputStream 流用來傳輸數(shù)據(jù)刻获。
如下圖:
服務(wù)端蜀涨,如果Socket是從ServerSocket拿到的,那就是服務(wù)器連接端 蝎毡。
ServerSocket ser=newServerSocket(8080);//建立好一個(gè)服務(wù)端厚柳,端口號(hào)為8080如果8080端口被占用了會(huì)報(bào)錯(cuò),
端口占用錯(cuò)誤沐兵。
Socket sock=ser.accept();/* 監(jiān)聽客戶端連接,監(jiān)聽8080端口,如果有客戶端來連接他就會(huì)自動(dòng)創(chuàng)建一個(gè),Socket 然后客戶端的Socket 和服務(wù)端的 Socket 會(huì)創(chuàng)建 輸出和輸入流别垮,用來傳輸數(shù)據(jù)。
*/InputStream input=ser.getInputStream();OutputStream out=ser.getOutputStream();// 獲得輸出和輸入流扎谎。out.flush();// 這個(gè)方法是催系統(tǒng)趕緊把數(shù)據(jù)發(fā)送過去碳想。
用戶端,自己創(chuàng)建的Socket毁靶,那你就是客戶端胧奔。
Socket sock=newSocket( “ip” , 端口 );// 創(chuàng)建用戶端,指定好你要連接的服務(wù)器ip 和端口。InpoutStream input=sock.getInputStream();OutputStream out=sock.getOutputStream();// 獲得用戶端的輸出和輸入流 ,用來傳輸數(shù)據(jù)预吆。out.flush();// 這個(gè)方法是催系統(tǒng)趕緊把數(shù)據(jù)發(fā)送過去龙填。
下圖是用戶端鏈接客服端的圖解:
如下圖 用戶和服務(wù)器的數(shù)據(jù)傳輸:
InetAdderss ip=InetAddress.getLocalHost();ip.getHostAddress();// 獲得本地ipv4的IP地址。InetAddress ip=InetAddress.getByName(“www.kaige123.com”);ip.getHostAddress();// 獲得kaige123 網(wǎng)址的ipv4的IP地址拐叉。 //使用DNS接續(xù)出來的岩遗。