Socket网络编程学习

0. 概述

java是Internet上的语言,从语言级上提供了对网络应用程序的支持。

java提供的网络类库,联网的底层细节被隐藏在java的本机安装系统里,由JVM进行控制。

并且java实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。

0.1 软件架构

1) C/S架构:全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ,美团app,360安全卫士等。

2) B/S架构:全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有IE、谷歌、火狐等。

* 两种架构都离不开网络的支持,网络编程,就是在一定的协议下,实现两台计算机的通信的程序。

0.2 网络通信,需要解决的三个问题:

1) 如何准确定位网络的一台或多台主机

2) 如何定位主机上的特定的应用

3) 如何可靠、高效地进行数据传输

0.3 实现网络传输的三个要素:

1) IP地址

2) 端口号

3) 网络通信协议

1. IP

1.1 作用

IP地址用来给网络中的一台计算机设备做唯一的编号

1.2 IP地址分类

1) 分类

IPv4

IPv6

2) 分类

公网地址(万维网)和私有地址(局域网)

1.3 本地回路地址: 127.0.0.1

1.4 域名:便捷的记录ip地址

www.baidu.com www.bilibili.com

通过域名服务器(DNS, Domain Name System)负责将域名转化为IP地址,才能和主机建立连接。

2. 端口号

2.1 作用

可以唯一标识主机中的进程(应用程序)

范围:0~65535

3. 网络通信协议

3.1 目的

实现可靠而高效的数据传输

3.2 网络参考模型

OSI参考模型:将网络分为7层,过于理想化,没有实施起来。

TCP/IP参考模型:将网络分为5层,应用层、传输层、网络层、物理层、数据链路层。

4. InetAddress的使用

4.1 作用

InetAddress类的一个实例就代表一个具体的ip地址。

4.2 实例化方式

getByName(String host) //获取指定IP对应的InetAddress实例。 host 域名或IP地址

getLocalHost() //获取本地IP对应的InetAddress实例

4.3 常用方法

getHostName() //获取域名

getHostAddress() //获取IP地址

5.  Socket

5.1 常用方法

//Socket(InetAddress address, int port) throws IOException

//客户端创建一个Socket对象

Socket socket = new Socket(InetAddress.getLocalHost(), port);

//服务端创建一个Socket对象

ServerSocket serverSocket = serverSocket(port);

Socket socket = socketSocket.accept();

//获取输入输出流对象

OutputStream os = socket.getOutputStream;

InputStream is = socket.getInputStream;

socket.shutdownOutput() //客户端表明不再继续发送数据,否则服务端接受数据会一直阻塞。

new ByteArrayOutputStream() //维护了一个byte[],防止接收文本数据时因为一个字符被数组分割而乱码。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值