【Java 网络编程】客户端 Socket 创建
文章目錄
- I TCP 無(wú)代理或無(wú)參構(gòu)造函數(shù)
- II 創(chuàng)建 Socket 時(shí)指定代理
- III 創(chuàng)建 Socket 時(shí)直接指定服務(wù)器地址和端口號(hào)
- IV 創(chuàng)建 Socket 時(shí)直接指定服務(wù)器地址和端口號(hào) 并綁定本地IP地址和端口號(hào)
- V 創(chuàng)建無(wú)參 Socket 綁定地址
I TCP 無(wú)代理或無(wú)參構(gòu)造函數(shù)
Socket socket = new Socket(Proxy.NO_PROXY);
創(chuàng)建 Socket 對(duì)象 , 傳入 Proxy.NO_PROXY 參數(shù) , 代表該參數(shù)沒(méi)有代理模式 ; 該構(gòu)造函數(shù)與下面的無(wú)參構(gòu)造方法是等價(jià)的 ;
Socket socket = new Socket();II 創(chuàng)建 Socket 時(shí)指定代理
1. 代理構(gòu)造函數(shù) : 下面是代理創(chuàng)建的構(gòu)造函數(shù)的方法原型 , 其中的 Type type 是代理類型 , SocketAddress sa 是代理的地址和端口號(hào) ;
public Proxy(Type type, SocketAddress sa)2. 代理類型選擇 : DIRECT 指的是直連模式 , 即該模式下沒(méi)有代理 ; HTTP 代表高層級(jí)的協(xié)議如 HTTP 或者 FTP 協(xié)議 ; SOCKS 代表了 SOCKS4 或 SOCKS5 協(xié)議
/*** Represents the proxy type.** @since 1.5*/public enum Type {/*** Represents a direct connection, or the absence of a proxy.*/DIRECT,/*** Represents proxy for high level protocols such as HTTP or FTP.*/HTTP,/*** Represents a SOCKS (V4 or V5) proxy.*/SOCKS};3. 代理 Socket 示例 : 創(chuàng)建代理 , 并使用代理創(chuàng)建 Socket 示例 ; 通過(guò)代理服務(wù)器暴露的端口號(hào) , 本地發(fā)送的數(shù)據(jù)先發(fā)送到代理服務(wù)器上 , 然后通過(guò)代理服務(wù)器發(fā)送和接收數(shù)據(jù) ;
//創(chuàng)建代理對(duì)象 , 所有的數(shù)據(jù)通過(guò)Proxy proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress(Inet4Address.getByName("代理服務(wù)器地址"), 代理端口號(hào)));Socket socket = new Socket(proxy);III 創(chuàng)建 Socket 時(shí)直接指定服務(wù)器地址和端口號(hào)
創(chuàng)建 Socket 對(duì)象 , 傳入服務(wù)器端地址 , 和端口號(hào) , 這是要連接的地址和端口號(hào) ;
Socket socket = new Socket("192.168.1.100", 8888); Socket socket = new Socket(Inet4Address.getLocalHost(), 8888);IV 創(chuàng)建 Socket 時(shí)直接指定服務(wù)器地址和端口號(hào) 并綁定本地IP地址和端口號(hào)
1. IP 地址 : 客戶端 IP 地址 和 服務(wù)器端 IP 地址是一樣的 , 都是本地 IP 地址 ;
2. 端口號(hào) : 服務(wù)器端端口號(hào)是 8888 , 客戶端端口號(hào)是 8887 ;
3. 指定內(nèi)容 : 在創(chuàng)建 Socket 對(duì)象時(shí) , 同時(shí)指定了服務(wù)器端的地址 , 服務(wù)器端端口號(hào) , 客戶端 IP 地址 , 客戶端端口號(hào) ;
4. 參數(shù) : 下面的兩種構(gòu)造函數(shù) , 前兩個(gè)參數(shù)指定服務(wù)器端 IP 地址和端口號(hào) , 后兩個(gè)參數(shù)指定綁定的客戶端的 IP 地址和端口號(hào) ;
5. 自動(dòng)連接服務(wù)器 : 該 Socket 對(duì)象創(chuàng)建成功后 , 會(huì)自動(dòng)連接 , 如果連接失敗 , 會(huì)拋出異常 , 該 Socket 創(chuàng)建也會(huì)失敗 ;
Socket socket = new Socket("192.168.1.100", 8888, Inet4Address.getLocalHost(), 8887); Socket socket = new Socket(Inet4Address.getLocalHost(), 8888, Inet4Address.getLocalHost(), 8887);不推薦使用該方法 , 在 Socket 連接之前 , 要先進(jìn)行各種參數(shù)設(shè)置 , 這種情況下無(wú)法進(jìn)行詳細(xì)的參數(shù)配置 , 連接使用的都是默認(rèn)參數(shù) ;
V 創(chuàng)建無(wú)參 Socket 綁定地址
創(chuàng)建 Socket 對(duì)象時(shí) , 推薦使用無(wú)參構(gòu)造函數(shù)創(chuàng)建對(duì)象 , 并進(jìn)行各種參數(shù)設(shè)置 , 在 Socket 創(chuàng)建之后 , 可以立刻綁定本地的 IP 地址和端口號(hào) ;
//創(chuàng)建無(wú)參的 Socket 對(duì)象Socket socket = new Socket();//綁定本地的 IP 地址和端口號(hào)socket.bind(new InetSocketAddress(Inet4Address.getLocalHost(), 8887));總結(jié)
以上是生活随笔為你收集整理的【Java 网络编程】客户端 Socket 创建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Java 网络编程】客户端 Socke
- 下一篇: 【Java 网络编程】服务器端 Serv