----------------------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培训、期待与您交流! --------------------