麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

網絡基礎

2019-11-11 06:12:46
字體:
來源:轉載
供稿:網友

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

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

從套接字讀取信息時,在可以訪問數據之前,讀操作將會被阻塞。如果此時主機不可達,那么應用將要等待很長的時間,并且因為受底層操作系統的限制而最終會導致超時。對于不同的應用,應該確定合理的超時值。然后調用setSoTimeout方法設置這個超時值(單位:毫秒)。如果已經為套接字設置了超時值,并且之后的讀操作和寫操作在沒有完成之前就超過了時間限制,那么這些操作就會拋出SocketTimeoutException異常。Socket(String host,int port)會一直無限期地阻塞下去,直到建立了到達主機的初始連接為止。

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

因特網地址是指用一串數字表示的主機地址,它由4個字節組成, ipv6規定為16個字節,比如132.163.4.102。通常,不用過多考慮因特網地址的問題。但是,如果需要在主機名和因特網地址之間進行轉換時,可以使用InetAddress類。靜態的getByName方法可以返回代表某個主機的InetAddress對象。

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

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

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

ServerSocket(int port)創建一個監控端口的服務器套接字。Socket accept()等待連接。該方法阻塞(即,使之空閑)當前線程直到建立連接為止。該方法返回一個套接字對象,程序可以通過這個對象與連接中的客戶端進行通信。void close()關閉服務器套接字。
客戶端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();		}
服務器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();


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久久久高清 | 斗罗破苍穹在线观看免费完整观看 | 一级免费黄色免费片 | 成人一级片毛片 | 亚洲综合无码一区二区 | a级在线 | 中文字幕亚洲欧美 | 黄色大片在线观看 | av成人免费看 | 热re91久久精品国产99热 | 色淫网站免费视频 | 欧美一级电影网站 | 中文字幕亚洲视频 | 91精品观看91久久久久久国产 | 精品国产91一区二区三区 | 欧美成人精品不卡视频在线观看 | 亚洲国产高清自拍 | 极品xxxx欧美一区二区 | 中文字幕欧美一区二区三区 | 在线成人免费观看www | 精品一区二区久久久久 | 国产精品久久在线观看 | 欧美日韩在线视频一区 | 成人精品一区二区三区中文字幕 | 久久久av亚洲男天堂 | 久久国产一级片 | 精品成人免费一区二区在线播放 | www.成人在线视频 | 久久影院yy6080 | 久久久噜噜噜久久熟有声小说 | 国产午夜精品久久久久久免费视 | www.69色| 欧美成人精品一区二区三区 | 国产69精品久久久久久野外 | 免费毛片视频 | 国产一级做a爱片在线看免 2019天天干夜夜操 | 国产日韩精品欧美一区视频 | 精品成人免费一区二区在线播放 | 免费毛片播放 | 国产中出在线观看 | 福利免费在线 |