日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
JavaSocketAPI關(guān)鍵代碼詳細(xì)使用介紹

Java SocketAPI如何才能夠正常的使用呢?這個(gè)問(wèn)題就需要我們掌握相關(guān)的代碼。所謂socket通常也稱作"套接字",用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程序通常通過(guò)"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。

我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、興隆ssl等。為超過(guò)千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的興隆網(wǎng)站制作公司

以J2SDK-1.3為例,Java SocketAPI和ServerSocket類庫(kù)位于java.net包中。ServerSocket用于服務(wù)器端, Socket是建立網(wǎng)絡(luò)連接時(shí)使用的。在連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會(huì)話。對(duì)于一個(gè)網(wǎng)絡(luò)連接來(lái)說(shuō), 套接字是平等的,并沒(méi)有差別,不因?yàn)樵诜?wù)器端或在客戶端而產(chǎn)生不同級(jí)別。不管是Socket還是ServerSocket它們的工作都是通過(guò) SocketImpl類及其子類完成的。#t#

重要的Java SocketAPI:

java.net.Socket繼承于java.lang.Object,有八個(gè)構(gòu)造器,其方法并不多,下面介紹使用最頻繁的三個(gè)方法,其它方法大家可以見(jiàn)JDK-1.3文檔。

Accept方法用于產(chǎn)生"阻塞",直到接受到一個(gè)連接,并且返回一個(gè)客戶端的Socket對(duì)象實(shí)例。"阻塞"是一個(gè)術(shù)語(yǔ),它使程序運(yùn)行暫時(shí)"停留"在這個(gè)地方,直到一個(gè)會(huì)話產(chǎn)生,然后程序繼續(xù);通常"阻塞"是由循環(huán)產(chǎn)生的。

getInputStream方法獲得網(wǎng)絡(luò)連接輸入,同時(shí)返回一個(gè)IutputStream對(duì)象實(shí)例,。

getOutputStream方法連接的另一端將得到輸入,同時(shí)返回一個(gè)OutputStream對(duì)象實(shí)例。

注意:其中g(shù)etInputStream和getOutputStream方法均會(huì)產(chǎn)生一個(gè)IOException,它必須被捕獲,因?yàn)樗鼈兎祷氐牧鲗?duì)象,通常都會(huì)被另一個(gè)流對(duì)象使用。

如何開(kāi)發(fā)一個(gè)Server-Client模型的程序

開(kāi)發(fā)原理:

服務(wù)器,使用ServerSocket監(jiān)聽(tīng)指定的端口,端口可以隨意指定(由于1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不可以隨意使用,所以建議使用大于1024的端口),等待客戶連接請(qǐng)求,客戶連接后,會(huì)話產(chǎn)生;在完成會(huì)話后,關(guān)閉連接。

客戶端,使用Socket對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,打開(kāi)會(huì)話;會(huì)話完成后,關(guān)閉Socket??蛻舳瞬恍枰付ù蜷_(kāi)的端口,通常臨時(shí)的、動(dòng)態(tài)的分配一個(gè)1024以上的端口。

{建立服務(wù)器}

 
 
 
  1. import java.net.*;
  2. import java.io.*;
  3. public class Server
  4. {
  5. private ServerSocket ss;
  6. private Socket socket;
  7. private BufferedReader in;
  8. private PrintWriter out;
  9. public Server()
  10. {
  11. try
  12. {
  13. ss = new ServerSocket(10000);
  14. while (true)
  15. {
  16. socket = ss.accept();
  17. in = new BufferedReader(new InputStreamReader
    (socket.getInputStream()));
  18. out = new PrintWriter(socket.getOutputStream(),true);
  19. String line = in.readLine();
  20. out.println("you input is :" + line);
  21. out.close();
  22. in.close();
  23. socket.close();
  24. }
  25. ss.close();
  26. }
  27. catch (IOException e)
  28. {}
  29. }
  30. public static void main(String[] args)
  31. {
  32. new Server();
  33. }

這個(gè)程序建立了一個(gè)服務(wù)器,它一直監(jiān)聽(tīng)10000端口,等待用戶連接。在建立連接后給客戶端返回一段信息,然后結(jié)束會(huì)話。這個(gè)程序一次只能接受一個(gè)客戶連接。

{建立客戶端}

 
 
 
  1. import java.io.*;
  2. import java.net.*;
  3. public class Client
  4. {
  5. Socket socket;
  6. BufferedReader in;
  7. PrintWriter out;
  8. public Client()
  9. {
  10. try
  11. {
  12. socket = new Socket("xxx.xxx.xxx.xxx", 10000);
  13. in = new BufferedReader(new InputStreamReader
    (socket.getInputStream()));
  14. out = new PrintWriter(socket.getOutputStream(),true);
  15. BufferedReader line = new BufferedReader(new 
    InputStreamReader(System.in));
  16. out.println(line.readLine());
  17. line.close();
  18. out.close();
  19. in.close();
  20. socket.close();
  21. }
  22. catch (IOException e)
  23. {}
  24. }
  25. public static void main(String[] args)
  26. {
  27. new Client();
  28. }

這個(gè)客戶端連接到地址為xxx.xxx.xxx.xxx的服務(wù)器,端口為10000,并從鍵盤輸入一行信息,發(fā)送到服務(wù)器,然后接受服務(wù)器的返回信息,***結(jié)束會(huì)話。以上就是對(duì)Java SocketAPI的詳細(xì)介紹。


本文標(biāo)題:JavaSocketAPI關(guān)鍵代碼詳細(xì)使用介紹
轉(zhuǎn)載來(lái)于:http://www.5511xx.com/article/cocgdjp.html