《Socket 编程.ppt》由会员分享,可在线阅读,更多相关《Socket 编程.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 郭 苗什么是Socket?Socket通信的两种模式使用Socket进行网络通信的过程使用ServerSocket和Socket实现服务器端和客户端的Socket通信什么是Socket(套接字)?所谓socket通常也称作“套接字”,它用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过”套接字”向网络发出请求或者应答网络请求。换句话说:socket是连接运行在网络上得两个程序间的双向通讯的端点面向连接的 面向连接的socket操作就像一部电话,他们必须建立一个连接,并由一人呼叫.所有的事情在到达时的顺序与它们出发时的顺序是一样的无连接的 无连接的socket操作就像是一个邮件投递,
2、没有什么保证,多个邮件可能在到达时的顺序与出发时的顺序不一样.面向连接的操作使用TCP协议.这个模式下的socket必须在发送数据之前与目的地的socket取得一个连接.一旦连接建立了,socket就可以使用一个流接口:打开-读-写-关闭.所有的发送的信息都会在另一端以同样的顺序被接收.面向连接的操作比无连接的操作效率低,但是数据的安全性更高.无连接的操作使用数据报(UDP)协议.一个数据报是一个独立的单元,它包含了所有的这次投递的信息.把它想象成一个信封吧,它有目的地址和要发送的内容这个模式下的socket不需要连接一个目的地socket,它只是简单地投出数据报.无连接的操作是快速的和高效的
3、,但是数据安全性不佳.TCP是Transfer Control Protocol的简称,是一种面向连接的保证可靠的传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接受方的,成对的两个Socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个Socket(通常是Server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或操作因为要安全可靠相对的要付出一定代价,传输效率不如UDP高UDP是User Datagram Protocol的简称,是一种无连接的协议,每
4、个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。这样的特性决定了那些不要求音频视频数据绝对正确,只要保证连贯性即可的场合。通过包中的类,java程序能够使用TCP或UDP协议在互联网上进行通信ServerSocketSocketDatagramSocketDatagramPacket1.服务器程序将一个套接字绑定到一个特定的端口,并通过此套接字等待和监听客户端的连接请求。2.客户程序根据服务器程序所在的主机名和端口号发出连接请求serverportClientConnection
5、 request3.如果一切正常,服务器接受连接请求,并获得一个新的绑定到不同端口地址的套接字4.客户端和服务器端通过读、写套接字进行通讯。ServerportportClientConnectionServerServerSocket(port)ServerSocket.accept()Socket();OutputStream()InputStream()Socket.close()ClientSocket(server,port)OutputStream()InputStream()Socket.close()服务器端:客户端:1)创建ServerSocket2)接受客户端连接请求,返回一个Socket3)获取输入/输出流4)读/写数据5)关闭输入/输出流6)关闭socket1)创建Socket2)获取输入/输出流3)读/写数据4)关闭输入/输出流5)关闭socketThank you!