文章目录

  • I TCP 无代理或无参构造函数
  • II 创建 Socket 时指定代理
  • III 创建 Socket 时直接指定服务器地址和端口号
  • IV 创建 Socket 时直接指定服务器地址和端口号 并绑定本地IP地址和端口号
  • V 创建无参 Socket 绑定地址

I TCP 无代理或无参构造函数


Socket socket = new Socket(Proxy.NO_PROXY);

创建 Socket 对象 , 传入 Proxy.NO_PROXY 参数 , 代表该参数没有代理模式 ; 该构造函数与下面的无参构造方法是等价的 ;

Socket socket = new Socket();

II 创建 Socket 时指定代理


1. 代理构造函数 : 下面是代理创建的构造函数的方法原型 , 其中的 Type type 是代理类型 , SocketAddress sa 是代理的地址和端口号 ;

public Proxy(Type type, SocketAddress sa)

2. 代理类型选择 : DIRECT 指的是直连模式 , 即该模式下没有代理 ; HTTP 代表高层级的协议如 HTTP 或者 FTP 协议 ; SOCKS 代表了 SOCKS4 或 SOCKS5 协议

    /*** 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 示例 : 创建代理 , 并使用代理创建 Socket 示例 ; 通过代理服务器暴露的端口号 , 本地发送的数据先发送到代理服务器上 , 然后通过代理服务器发送和接收数据 ;

        //创建代理对象 , 所有的数据通过Proxy proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress(Inet4Address.getByName("代理服务器地址"), 代理端口号));Socket socket = new Socket(proxy);

III 创建 Socket 时直接指定服务器地址和端口号


创建 Socket 对象 , 传入服务器端地址 , 和端口号 , 这是要连接的地址和端口号 ;

Socket socket = new Socket("192.168.1.100", 8888);
Socket socket = new Socket(Inet4Address.getLocalHost(), 8888);

IV 创建 Socket 时直接指定服务器地址和端口号 并绑定本地IP地址和端口号


1. IP 地址 : 客户端 IP 地址 和 服务器端 IP 地址是一样的 , 都是本地 IP 地址 ;

2. 端口号 : 服务器端端口号是 8888 , 客户端端口号是 8887 ;

3. 指定内容 : 在创建 Socket 对象时 , 同时指定了服务器端的地址 , 服务器端端口号 , 客户端 IP 地址 , 客户端端口号 ;

4. 参数 : 下面的两种构造函数 , 前两个参数指定服务器端 IP 地址和端口号 , 后两个参数指定绑定的客户端的 IP 地址和端口号 ;

5. 自动连接服务器 : 该 Socket 对象创建成功后 , 会自动连接 , 如果连接失败 , 会抛出异常 , 该 Socket 创建也会失败 ;

Socket socket = new Socket("192.168.1.100", 8888, Inet4Address.getLocalHost(), 8887);
Socket socket = new Socket(Inet4Address.getLocalHost(), 8888, Inet4Address.getLocalHost(), 8887);

不推荐使用该方法 , 在 Socket 连接之前 , 要先进行各种参数设置 , 这种情况下无法进行详细的参数配置 , 连接使用的都是默认参数 ;

V 创建无参 Socket 绑定地址


创建 Socket 对象时 , 推荐使用无参构造函数创建对象 , 并进行各种参数设置 , 在 Socket 创建之后 , 可以立刻绑定本地的 IP 地址和端口号 ;

     //创建无参的 Socket 对象Socket socket = new Socket();//绑定本地的 IP 地址和端口号socket.bind(new InetSocketAddress(Inet4Address.getLocalHost(), 8887));

【Java 网络编程】客户端 Socket 创建相关推荐

  1. Java网络编程:socket与Netty

    Java网络编程:socket与Netty Java网络编程:socket与Netty TCP/IP介绍 简介 数据传输 TCP粘包和黏包 现象 为什么出现 如何解决 Socket介绍 介绍 功能开发 ...

  2. Java网络编程(Socket、URLConnection)

    文章目录 TCP和OSI参考模型 混迹于各层的网络协议 UDP协议 TCP协议 InetAddress类及其常用方法 UDP之DatagramSocket&DatagramPacket TCP ...

  3. 【Java 网络编程】Socket TCP UDP 联系

    文章目录 I 信息传输关注点 II Socket 与 TCP UDP 关系 III Socket 连接组成 ( IP地址 + 端口号 ) IV Socket TCP V Socket UDP VI C ...

  4. JAVA 网络编程(5) SOCKET UDP 单播和组播,以及组播其他机器收不到报文的解决方法

    UDP既可以单播也可以组播 一,单播 单播的过程为 发送方: InetAddress destAddr = InetAddress.getByName("192.168.4.199" ...

  5. Java网络编程 Socket、ServerSocket 详解,方法介绍及完整代码示例

    Java网络编程 Socket.ServerSocket 详解,方法介绍及完整代码示例 概念 什么是网络编程? 网络编程是指编写运行在多个设备(计算机)的程序,这些设备通过网络连接起来.当这些通过网络 ...

  6. 【Java 网络编程】TCP 服务器端 客户端 简单示例

    文章目录 I IntelliJ IDEA 创建 Java 项目 II 客户端 Socket 创建 III Socket 客户端连接服务器端 IV Socket 两个端点信息获取 V 控制台人机交互 V ...

  7. Java网络编程和NIO详解开篇:Java网络编程基础

    老曹眼中的网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为我们拥有网络.网络是一个神奇的东西,它改变了你和我的 ...

  8. Java 网络编程 03 —— URL下载资源

    系列文章目录 Java 网络编程 01 -- Socket TCP通信 Java 网络编程 02 -- Socket UDP通信 Java 网络编程 03 -- URL下载资源 文章目录 系列文章目录 ...

  9. java网络编程,通过TCP,Socket实现多对一的局域网聊天室

    java网络编程,通过TCP,Socket实现多对一的局域网聊天室 可以实现多个客户端连接服务器,服务器接收到信息就会把信息广播到所有的客户端 这是服务器端的代码 View Code import j ...

  10. winsock使用java编写_利用Socket进行Java网络编程(一)

    利用Socket进行Java网络编程(一) 考试吧(Exam8.com) 2003-03-04 08:00:00 评论(0)条 作者: 郗旻 Socket是网络上运行的两个程序间双向通讯的一端,它既可 ...

最新文章

  1. amaze ui各个模块简单说明
  2. KETTLE数据上传
  3. /scriptalert(/xss/)/script
  4. Jenkins插件之有用
  5. 【实践】端智能在大众点评搜索推荐重排序的应用实践
  6. 设计模式的皇后-观察者模式
  7. IOC容器和Bean的配置
  8. C_Learning(3)
  9. 语音通话视频通话前端_无需互联网即可进行数十亿视频通话
  10. svn创建分支和合并
  11. stm32控制步进电机程序
  12. 一、linux驱动实验-14.1-imx6ull驱动MT7601
  13. 微信小程序前期申请企业认证、后期提审发布流程
  14. SpringBoot AOP注解写法
  15. 科大讯飞python 思维导图
  16. Ipad IOS 蓝牙键盘快捷键
  17. 梁定郊:一个人行贿赠西藏、新疆狂 野之旅
  18. 让老板虎躯一震的前端技术,KPI杀手
  19. DLNA 在自己的APP 中添加投屏功能
  20. php验证邮编,常用的js验证数字,电话号码,传真,邮箱,手机号码,邮编,日期...

热门文章

  1. MongoDB -- Error: unclean shutdown detected
  2. 2019区块链广泛应用于能源领域 ,DMA基金会,服务于区块链产业
  3. sklearn.feature_extraction.text.CountVectorizer 学习
  4. 用户态/内核态、用户栈/内核栈
  5. 【转】Go 语言教程(2)——表达式
  6. 2017-2018-1 2015335 《信息安全系统设计基础》 第4周课上实践 (新补的,但不完整)...
  7. SpringMVC异常报406 (Not Acceptable)的解决办法
  8. [Github]watch和star的区别
  9. 关于一部分数学知识》(工具向)(实时更新)
  10. C++线性序列容器vector简单总结