1.所謂Socket通常也稱作“套接字”,用于描述IP地址和端口,是一個通信連的句柄
2.應用程序通常通過“套接字”向網(wǎng)絡發(fā)送請求或者應答網(wǎng)絡請求
二.Socket基本通信模型
三.使用基于TCP協(xié)議的Socket
一個客戶端要發(fā)起一次通信,首先必須知道運行服務器端的主機IP地址。然后由網(wǎng)絡基礎設施利用目標地址,將客戶端發(fā)送的信息傳遞到正確的主機上,在java中,地址可以由一個字符串來定義,這個字符串可以使數(shù)字型的地址(比如192.168.1.1),也可以是主機名(example.com)。
在Java當中InetAddress類代表了一個網(wǎng)絡目標地址,包括主機名和數(shù)字類型的地址信息。下面為大家介紹一下基于TCP協(xié)議操作Socket的API:
ServerSocket:這個類是實現(xiàn)了一個服務器端的Socket,利用這個類可以監(jiān)聽來自網(wǎng)絡的請求。
a)創(chuàng)建ServerSocket的方法:
ServerSocket(Int localPort)
ServerSocket(int localport,int queueLimit)
ServerSocket(int localport,int queueLimit,InetAddress localAddr)
創(chuàng)建一個ServerSocket必須指定一個端口,以便客戶端能夠向該端口號發(fā)送連接請求。端口的有效范圍是0-65535
b)ServerSocket操作
Socket accept()
void close
accept()方法為下一個傳入的連接請求創(chuàng)建Socket實例,并將已成功連接的Socket實例返回給服務器套接字,如果沒有連接請求,accept()方法將阻塞等待;
close方法用于關(guān)閉套接字
Socket:
a)創(chuàng)建Socket的方法:
Socket(InetAddress remoteAddress,int remotePort)
利用Socket的構(gòu)造函數(shù),可以創(chuàng)建一個TCP套接字后,先連接到指定的遠程地址和端口號。
b)操作Socket的方法
InputStream getInputStream()
OutputStream getOutputStream()
void close()
操作TCPsocket的圖示:
使用基于UDP的Socket
a)創(chuàng)建DatagramPacket
DatagramSocket(byte [] data,int offset,int length,InetAddress remoteAddr,int remotePort)
該構(gòu)造函數(shù)創(chuàng)建一個數(shù)據(jù)報文對象,數(shù)據(jù)包含在第一個參數(shù)當中
b)創(chuàng)建DatagramSocket創(chuàng)建
DatagramSocket(int localPort)
以上構(gòu)造函數(shù)將創(chuàng)建一個UDP套接字;
c)DatagramSocket:發(fā)送和接受
void send(DatagramPacket packet)
void receive(DatagramPacket packet)
send()方法用來發(fā)送DatagramPacket實例。一旦創(chuàng)建連接,數(shù)據(jù)報將發(fā)送到該套接字所連接的地址;
receive()方法將阻塞等待,知道接收到數(shù)據(jù)報文,并將報文中的數(shù)據(jù)復制到指定的DatagramPacket實例中
原文 :