-
通信過(guò)程(Socket通信模型):
1、在服務(wù)端建立一個(gè)ServerSocket,綁定相應(yīng)的端口,并且在指定的端口進(jìn)行偵聽(tīng),等待客戶(hù)端的連接。
2、當(dāng)客戶(hù)端創(chuàng)建連接Socket并且向服務(wù)端發(fā)送請(qǐng)求。
3、服務(wù)器收到請(qǐng)求,并且接受客戶(hù)端的請(qǐng)求信息。一旦接收到客戶(hù)端的連接請(qǐng)求后,會(huì)創(chuàng)建一個(gè)鏈接socket,用來(lái)與客戶(hù)端的socket進(jìn)行通信。
通過(guò)相應(yīng)的輸入/輸出流進(jìn)行數(shù)據(jù)的交換,數(shù)據(jù)的發(fā)送接收以及數(shù)據(jù)的響應(yīng)等等。
4、當(dāng)客戶(hù)端和服務(wù)端通信完畢后,需要分別關(guān)閉socket,結(jié)束通信。
ServerSocket常用方法:
ServerSocket(int port)——?jiǎng)?chuàng)建并綁定到特定端口的服務(wù)器套接字
accept()——偵聽(tīng)并接受到此套接字的連接
close()——關(guān)閉此套接字
getInetAddress()——得到ServerSocket對(duì)象綁定的IP地址。如果ServerSocket對(duì)象未綁定IP地址,返回0.0.0.0。
getLocalPort()——返回此套接字在其上偵聽(tīng)的端口
Socket常用方法:
Socket(InetAddress address, int port)——?jiǎng)?chuàng)建一個(gè)套接字并將其連接到指定ip地址的指定端口號(hào)
Socket(String host, int port)——?jiǎng)?chuàng)建一個(gè)套接字并將其連接到指定主機(jī)上的指定端口號(hào)
close()——關(guān)閉此套接字
getInetAddress()——返回套接字連接的地址
getInputStream()——返回此套接字的輸入流
getOutputStream——返回此套接字的輸出流查看全部 -
Scoket通信的編程步驟
查看全部 -
Socket的TCP通信模型
查看全部 -
Socket通信簡(jiǎn)介
查看全部 -
url:統(tǒng)一資源定位符:表示internet上的網(wǎng)絡(luò)資源<br>
協(xié)議+資源名稱(chēng)<br>
url常用方法:<br>
存在java.net包中,提供創(chuàng)建url/子url,獲取url等方法<br>
第一步:創(chuàng)建實(shí)例<br>
URL imooc=new URL("http://idcbgp.cn");<br>
//在原有url下再創(chuàng)建url<br>
URL url=new URL(imooc,"/index.html?username=tom#test")<br>
//獲取url的信息<br>
url.getProtocol();//獲取協(xié)議http<br>
url.getHost();//獲取主機(jī)idcbgp.cn<br>
url.getPort();//獲取端口號(hào):-1<br>
url.getPath();//獲取文件路徑/index.html<br>
url.getFile();//獲取文件名/index.html?username=tom<br>
url.getRef();//獲取相對(duì)路徑test<br>
url.getQuery();//查詢(xún)字符串username=tom<br>
注:創(chuàng)建url時(shí)沒(méi)有指定端口號(hào)則getPort方法返回-1,協(xié)議不同會(huì)使用默認(rèn)端口
2url讀取網(wǎng)頁(yè)內(nèi)容:<br>
URL url=new URL("http://www.baidu.com");<br>
//獲取輸入流通過(guò)openStream方法<br>
InputStream is=url.openStream();<br>
//轉(zhuǎn)化成字符輸入流<br>
InputStream isr=new InputStreamReader(is);<br>
//加緩沖提高讀取效率<br>
BufferedReader br=new BufferedReader();<br>
String date=br.teadline();
while(date.next()){System.out.print(date);
date=br.readLine();
}
完成后要關(guān)閉資源相關(guān)資源:br,isr字符輸入流,is字節(jié)輸入流
注:如果輸出是亂碼則要在is字節(jié)輸入流中規(guī)定編碼為
InputStream isr=new InputStreamReader(is,"utf8");<br>查看全部 -
使用URL讀取網(wǎng)頁(yè)內(nèi)容
查看全部 -
1.InetAddress類(lèi)沒(méi)有構(gòu)造方法,所以不能直接new出一個(gè)對(duì)象;
可以通過(guò)InetAddress類(lèi)的靜態(tài)方法獲得InetAddress的對(duì)象;
InetAddress.getLocalHost();
InetAddress.getByName("");
2.類(lèi)主要方法:
String - address.getHostName();
String - address.getHostAddress();
public static InetAddress getByName(String host) throws UnknownHostException
在給定主機(jī)名的情況下確定主機(jī)的 IP 地址。
主機(jī)名可以是機(jī)器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式查看全部 -
Socket的例子
查看全部 -
Java中的4種網(wǎng)絡(luò)支持
查看全部 -
端口號(hào)的介紹
查看全部 -
IP地址的格式
查看全部 -
TCP/IP五層模型
查看全部 -
TCP/IP協(xié)議
查看全部 -
兩設(shè)備進(jìn)行網(wǎng)絡(luò)通信的必要條件:IP地址、協(xié)議、端口號(hào)
查看全部 -
JAVA 中的四大socket 類(lèi)
查看全部
舉報(bào)