黑马程序员—网络编程

来源:互联网 发布:王欣庭审 知乎 编辑:程序博客网 时间:2024/05/22 00:23

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------


网络编程三要素:

IP地址:网络中设备标识

端口号:用于标识进程的逻辑地址,不同进程的标识

             有效端口:0~65535,其中0~1024系统使用或保留端口

通信协议:传输协议(TCPUDP

TCPUDP的区别:

UDP:

1、  将数据及源和目的封装在数据包中,不需要建立连接。

2、  每个数据报的大小限制在64k内。

3、  因无连接,是不可靠协议

4、  不需要建立连接,速度快。

 

TCP:

1、  建立连接,形成传输数据的通道。

2、  在连接中进行大数据量传输

3、  通过三次握手完成连接,是可靠协议

4、  必须建立连接,效率会稍低

网络参考模型:

 

Socket就是为网络服务提供的一种机制。通信的两端都有Socket,网络通信其实就是Socket间的通信,数据在两个Socket间通过IO传输。

查看java API:

public class Socket
extends Object

此类实现客户端套接字(也可以就叫套接字)。套接字是两台机器间通信的端点。

套接字的实际工作由 SocketImpl 类的实例执行。应用程序通过更改创建套接字实现的套接字工厂可以配置它自身,以创建适合本地防火墙的套接字。

 

创建UDP示例:

创建步骤:

1、 建立udpsocket服务

2、提供数据,并将数据封装到数据包中。

3、通过socket服务的发送功能,将数据包发出去

4、关闭资源

//发送端

class udpsocketDemo

{

Public static void main()

{

DatagramSocket ds=new DatagramSocket();

Byte[] buf=”开始学习网络编程”.getBytes();

DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(“192.168.1.254”),10000);

ds.send();

ds.close();

}

}

//接受端

步骤:

1、 定义udpSocket服务

2、定义一个数据包,因为要存储接受到的字节数据,因为数据包对象中有更多功能可以提取字节数据中的不同数据信息。

3、通过socket服务的receive方法将接受到的数据存入已定义好的数据包中

4、通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上

5、关闭资源

class udpsocketrece

{

 Public static void main()throws Exception

{

Datagramsocket ds=new Datagramsocket();

Byte[] buf=new byte[1024];

DatagramPacket dp=new DatagramSocket(buf,buf.length);

ds.receive(dp);

String ip=dp.getAddress().getHostAddress();

String data=new String(dp.getData(),0,dp.getlength());

Int port=dp.getPort();

System.out.println(ip+”::”+data+”::”+port);

Ds.close();

}

}


----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

0 0
原创粉丝点击