黑马程序员----------------------网络编程

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! --------------------

socket网络编程

1.如何建立两个节点,(电脑)之间的网络连接

2.如何向另外一个节点(电脑)发送信息

3.如何从外部节点(电脑)接收一个请求并给予相应

4.如何利用网络协议(TCP,UDP)

Socket-----套接字

  应用程序通过“套接字”向网络发出请求或者应答

网络请求:

socket实质上提供了进程通信的端点网络上的两个程序通过一个双向的通讯链路实路实现数据的交换,这个双向链路的--端称为以个socket

在Tcp/Ip5层模型,Socket位于应用层-----传输层

在OSI 7层中socket位于会话层------传输层

1.原始套接字 sock_RAW 

该接口允许对较底层次协议,如IP直接访问可以接收本机网卡上的数据帧或数据包,对监听网络流量和分析很有用

2.流式套接字 sock_STREAM

提供了一个面向连接,可靠的数据传输服务,数据无差错,无重复的发送,且按发送顺序接收,其实它对应使用的是一个TCP协议

3.数据报式套接字 sock_DGRAM

无连接服务,数据报以独立包形式被发送,不提供无差错保证,数据可能丢失或重复,并且接收顺序无序,其实它对应使用的是UDP协议

Socke类的构造方法

构造方法

Socket(String host,int post )

向host主机的Post端口发起连接请求

Socket(String host ,int post ,InetAddress localAddress,int localport)

向host主机的port端口发起连接请求,发起请求的计算机为localAddr 端口为 localport

了解:InetAddress类表示互联网协议地址,包含ip地址InetAddress类是java对IP地址的封装

socket类的常用方法:

InetAddress getInetAddress() 返回当前Socket 对象关联的InetAddress对象

void ShutdownOutPut() 此套接字的输入流置于“流的末尾”

void shutdownOutput() 禁用此套节字的输出流

InputStream getInputStream 返回当前Socket 对象关联的InputStream此对象,它是服务器端向客户端发送回来的数据流

Socket 编程步骤

服务器端:

  1.建立一个服务器Socket绑定指定端口并开始监听

   2.使用accept()方法阻塞等待监听,获得新的连接

   3.建立输入和输出流

   4.在已有的协议上产生会话

   5.使用close()关闭流和Socket

客户端:

1.建立客户端Socket连接,指定服务器的位置以及端口

2.得到socket的读写流

3.利用流按一定的协议对Socket进行读/写操作

4.使用close()关闭流和Socket

UDP协议

DatagreamPacket类的构造方法

构造方法:

DatagrammerPacket(byte[]buf,int length,inetAddress address,int port)

说明:

构造Datagrampacket对象,用来将长度为length的包发送到指定主机上的指定端口号:

DatagramSocket类的构造方法:

DatagramSocket()创建一个Datagramsocket对象,并将其与本地主机上任何可用的端口绑定

DatagramSocket(int port) 创建一个DataGramSocket对象,并将其与本地主机上的指定端口绑定 

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! --------------------

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值