浅谈网络编程

  在项目开发中java也可以完成网络间的传输工作,接下来让我们看看他们的精髓之处。

首先网络传输有2个参考模型:OSI、TCP/I参考模型,并且满足网络通信要素:IP地址,端口号与传输协议。比如2个人用QQ进行聊天通信,首先要找到对方,在网络中使用IP来进行查找,然后发送消息,那么怎么知道发给了QQ呢?而不是发给YY呢,这时就是通过端口(逻辑端口)来指定。找到QQ之后呢,如果传输协议(默认TCP/IP)不同那么消息传递过程解析会出错,所以这几个要素必须满足才能进行网络通信。其实这些信息可以借助第三方软件可以看到比如360网络连接模块。如下图:


网络模型:简单理解不同层次所做相应的事情,如下图


数据传输时,在发送端我们先从应用层层层封装数据,封装好数据通过物理传输途径(比如网线,无线,蓝牙等)进行传输,在接收端接收接收数据之后从底层向上层层解析至应用层,然后应用层拆装数据,最后进行数据解析。其中传输层最常用协议UDP,TCP,网际层IP,应用层http.ftp协议。

UDP协议:将发送数据封装成包,并且发送数据包大小限制在64K以内,无连接快速传输,但是不安全容易丢失数据(聊天,视频会议,无重要时)

TCP协议:必须建立连接,形成传输通道,可进行大数据传输,安全协议传输。(传呼机,像打电话)

SOCKET:为网络服务提供的一种机制。它是网络通信中最重要的,通过IO技术进行通信传输。

UDP编程大致思路:

1.创建udp服务对象DatagramSocket对象

2.将发送数据封装包

3.发送数据包

4.关闭资源


发送端应用发送之后,那么要有接收端进行接收,否则数据会丢失。接收端开发思路:

例子:

TCP编程:

在此编程中,一个客户端和服务端(socket,serverSocket)

客户端代码:

1.创建一个客户端对象并绑定端口

2.创建对象的同时可以获取输入输出流,将发送信息写入输出流中,然后关闭客户端

服务端代码:

1.建立服务端套接字并监听一个端口

2.通过serversocket的accept方法接收信息此方法为阻塞方法












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值