国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

網(wǎng)絡(luò)基礎(chǔ)

2019-11-11 07:05:09
字體:
供稿:網(wǎng)友

下面介紹的內(nèi)容僅適用于TCP(傳輸控制協(xié)議)網(wǎng)絡(luò)協(xié)議。java平臺另外還支持所謂的UDP(用戶數(shù)據(jù)報協(xié)議)協(xié)議,該協(xié)議可以用于發(fā)送數(shù)據(jù)包(也稱為數(shù)據(jù)報),它所需付出的開銷要比TCP少得多。UDP有一個重要的缺點(diǎn):數(shù)據(jù)包無需按照順序進(jìn)行傳遞,它們甚至可能在傳輸過程中全部丟失。UDP要求數(shù)據(jù)包的接受者對它們進(jìn)行排序,并請求發(fā)送者重新發(fā)送那些丟失的數(shù)據(jù)包。UDP比較適合于那些可以忍受數(shù)據(jù)包丟失的應(yīng)用,例如用于音頻流和視頻流的傳輸,或者用于連續(xù)測量的應(yīng)用領(lǐng)域。

SocketSocket(String host, int port)構(gòu)建一個套接字,用來連接給定的主機(jī)和端口。InputStream getInputStream()OutputStream getOutputStream()獲取可以從套接字中讀取數(shù)據(jù)的流,以及可以向套接字寫出數(shù)據(jù)的流。套接字超時

從套接字讀取信息時,在可以訪問數(shù)據(jù)之前,讀操作將會被阻塞。如果此時主機(jī)不可達(dá),那么應(yīng)用將要等待很長的時間,并且因?yàn)槭艿讓?a href="http://www.survivalescaperooms.com/system.asp">操作系統(tǒng)的限制而最終會導(dǎo)致超時。對于不同的應(yīng)用,應(yīng)該確定合理的超時值。然后調(diào)用setSoTimeout方法設(shè)置這個超時值(單位:毫秒)。如果已經(jīng)為套接字設(shè)置了超時值,并且之后的讀操作和寫操作在沒有完成之前就超過了時間限制,那么這些操作就會拋出SocketTimeoutException異常。Socket(String host,int port)會一直無限期地阻塞下去,直到建立了到達(dá)主機(jī)的初始連接為止。

Socket a  = new Socket();a.connect(new InetSocketAddress("",80), 10);這樣就解決了前面一直阻塞的問題
Socket()創(chuàng)建一個還未被連接的套接字。void connect(SocketAddress address) 將該套接字連接到給定的地址。void connect(SocketAddress address, int timeoutInMilliseconds) 將套接字連接到給定的地址。如果在給定的時間內(nèi)沒有響應(yīng),則返回。void setSoTimeout(int timeoutInMilliseconds) 設(shè)置該套接字上讀請求的阻塞時間。如果超出給定時間,則拋出一個InterruptedIOException異常。boolean isConnected() 如果該套接字已被連接,則返回true。boolean isClosed() 如果套接字已經(jīng)被關(guān)閉,則返回true。因特網(wǎng)地址

因特網(wǎng)地址是指用一串?dāng)?shù)字表示的主機(jī)地址,它由4個字節(jié)組成, ipv6規(guī)定為16個字節(jié),比如132.163.4.102。通常,不用過多考慮因特網(wǎng)地址的問題。但是,如果需要在主機(jī)名和因特網(wǎng)地址之間進(jìn)行轉(zhuǎn)換時,可以使用InetAddress類。靜態(tài)的getByName方法可以返回代表某個主機(jī)的InetAddress對象。

InetAddress ia = InetAddress.getByName("localhost");然后,可以使用getAddress方法來訪問這些字節(jié)。
System.out.PRintln(ia.getHostName());byte[]  b = ia.getAddress();可以通過調(diào)用getAllByName方法來獲得所有主機(jī)
InetAddress[] ia = InetAddress.getAllByName("localhost");可以使用靜態(tài)的getLocalHost方法來得到本地主機(jī)的地址
InetAddress a =InetAddress.getLocalHost();
static InetAddress getByName(String host)static InetAddress[] getAllByName(String host)為給定的主機(jī)名,創(chuàng)建一個InetAddress對象,或者一個包含了該主機(jī)名所對應(yīng)的所有因特網(wǎng)地址的數(shù)組。static InetAddress getLocalHost()為本地主機(jī)創(chuàng)建一個InetAddress對象。byte[] getAddress()返回一個包含數(shù)字型地址的字節(jié)數(shù)組。String getHostAddress()返回一個由十進(jìn)制數(shù)組成的字符串,各數(shù)字間用圓點(diǎn)符號隔開,例如, “132.163.4.102”。String getHostName()返回主機(jī)名實(shí)現(xiàn)服務(wù)器

使用ServerSocket類用于建立一個套接字。

ServerSocket ss = new ServerSocket(int port);
Socket s = ss.accept();然后創(chuàng)建輸入輸出流讀取內(nèi)容。

ServerSocket(int port)創(chuàng)建一個監(jiān)控端口的服務(wù)器套接字。Socket accept()等待連接。該方法阻塞(即,使之空閑)當(dāng)前線程直到建立連接為止。該方法返回一個套接字對象,程序可以通過這個對象與連接中的客戶端進(jìn)行通信。void close()關(guān)閉服務(wù)器套接字。
客戶端public static void main(String[] args) throws UnknownHostException, IOException {		Socket a  = new Socket("127.0.0.1",8189);		InputStream is = a.getInputStream();		OutputStream os = a.getOutputStream();		PrintWriter pw = new PrintWriter(os);		BufferedReader bf = new BufferedReader(new InputStreamReader(is));		Scanner scanner = new Scanner(System.in);		String s;		while((s=bf.readLine())!=null){			System.out.println(s);			pw.println(scanner.nextLine());			pw.flush();		}
服務(wù)器ServerSocket ss = new ServerSocket(8189);		Socket s = ss.accept();		InputStream is = s.getInputStream();		OutputStream os = s.getOutputStream();		PrintWriter pw = new PrintWriter(os);		BufferedReader bf = new BufferedReader(new InputStreamReader(is));		pw.println("hello,enter bye to close");		pw.flush();		boolean flag=true;		String input;		while((input=bf.readLine())!=null&& flag){			pw.println(input);			if(input.equals("bye")){				flag=false;			}			pw.flush();		}		s.close();


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平武县| 高碑店市| 宣汉县| 凤凰县| 黄石市| 平江县| 汉川市| 慈利县| 望都县| 江西省| 安乡县| 中牟县| 龙州县| 荣昌县| 海丰县| 岱山县| 淮安市| 阿拉善左旗| 梓潼县| 绥芬河市| 永清县| 遵义县| 炎陵县| 儋州市| 突泉县| 韶关市| 米林县| 辉南县| 类乌齐县| 大兴区| 浦江县| 青龙| 扬州市| 克山县| 鹤峰县| 荣成市| 双鸭山市| 巴中市| 北宁市| 广宁县| 两当县|