国产美女一级毛片精品久久久|婷婷影院在线综合免费视频|最新国产午夜精品视频成人|久久精品九九无码免费

Java Socket編程學(xué)習(xí):什么是socket?

來源:北大青鳥飛迅校區(qū)|發(fā)布時間:2013-04-24 10:55:33

  所謂socket通常也稱作“套接字”,用于描述IP地址和端口,是一個通信鏈的句柄。應(yīng)用程序通常通過“套接字”向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。本文將Java Socket編程分為三個學(xué)習(xí)步驟,逐一為您講解。

  第一步 充分理解Socket

  1、什么是socket

  所謂socket通常也稱作“套接字”,用于描述IP地址和端口,是一個通信鏈的句柄。應(yīng)用程序通常通過“套接字”向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。

  以J2SDK-1.3為例,Socket和ServerSocket類庫位于java.net包中。ServerSocket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時使用的。在連接成功時,應(yīng)用程序兩端都會產(chǎn)生一個Socket實例,操作這個實例,完成所需的會話。對于一個網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有差別,不因為在服務(wù)器端或在客戶端而產(chǎn)生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。

  重要的Socket API:

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

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

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

  .getOutputStream方法連接的另一端將得到輸入,同時返回一個OutputStream對象實例。

  注意:其中g(shù)etInputStream和getOutputStream方法均會產(chǎn)生一個IOException,它必須被捕獲,因為它們返回的流對象,通常都會被另一個流對象使用。

  2、如何開發(fā)一個Server-Client模型的程序

  開發(fā)原理:

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

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

  {建立服務(wù)器}

  import java.net.*;

  import java.io.*;

  public class Server

  {

  private ServerSocket ss;

  private Socket socket;

  private BufferedReader in;

  private PrintWriter out;

  public Server()

  {

  try

  {

  ss = new ServerSocket(10000);

上一篇:用JAVA開發(fā)程序有哪些優(yōu)勢?
下一篇:Java截取字符串處理方法?

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長沙市天心區(qū)團結(jié)路6號

Copyright © 2006 | 湖南大計信息科技有限公司 版權(quán)所有

湘ICP備14017520號-3

關(guān)注我們
在線咨詢
嘿,我來幫您!
西峡县| 蕲春县| 普兰县| 阳江市| 汉寿县| 珠海市| 全南县| 永平县| 湘潭市| 班戈县| 丁青县| 易门县| 克什克腾旗| 曲阜市| 田东县| 襄樊市| 桦甸市| 鲁甸县| 从化市| 巴里| 钟祥市| 榆中县| 互助| 兴义市| 沐川县| 武功县| 光泽县| 莱州市| 水城县| 前郭尔| 曲水县| 广河县| 吉安县| 昭通市| 东乡族自治县| 婺源县| 兴国县| 永宁县| 巫溪县| 兴宁市| 西盟|