网络编程的概念是:多个计算机通过软件编程的方式进行数据传输来达到数据交互的功能。
TCP:是一种有连接的网络连接方式,是一种可靠地连接方式,每次连接进行3次握手。
UDP:面向无连接网络连接方式,每次发送数据之后就不关心了。:
套接字是通信端点的一种抽象,它提供一种发送和接收数据的机制。
2).数据报套接口采用的是用户数据报协议UDP,它建立在IP协议上,提供无连接数据报传输, 支 持双向的数据流,但并不保证是可靠,有序,无重复和。数据报文方式由于取消了重发校验机制,能够达到较高的通讯 速率,可以用作一些对数据可靠性要求不高的通讯,如实时的语音、图像转送、广播消息等 。
在流式套接字中,服务器首先启动,通过调用Serversocket(int port)建立一个套接口。将该套接口和本地网络地址联系在一起,再调用accept()使套接口 做好侦听的准备,来接收连接,客户new Socket(InetAddress address, int port)建 立套接口后就可和服务器建立连接,连接一旦建立,客户机和服务器之间就 可以通过调用Socket对象的getInputStream()和getOutStream()来发送和接收数据。最后,待数据传送结束后,双方调用close()关闭套接口.
具体的时序图如下:
Socket是基于TCP连接的,而封装的一个网络处理方式。
ServerSocket是Socket编程中用来表示服务端的一个API。
1).建立服务器,并给服务器分配端口。
new ServerSocket(int port);
2)接受来自客户端的请求
Socket accept()
Listens for a connection to be made to this socket and accepts it.接受来自客户端的请求,返回值为Socket对象。该Socket镀锡代表客户端的请求对象
accept()方法本身是一个阻塞方法。当接受到客户端请求后,程序才继续执行。
3)建立输入管道,为了能够接受客户端发送的消息
InputStream getInputStream()
Returns an input stream for this socket.获取网络节点流。
注:网络是一个数据传输和存储的介质。
4)读取数据
5)建立输出管道
OutputStream getOutputStream()
Returns an output stream for this socket.
6)输出数据
7)关闭Socket
void close()
Closes this socket
8)关闭服务端连接
void close()
1)建立客户端,准备服务端的ip地址和端口号
new Socket(InetAddress address, int port)
2)建立输出管道
OutputStream getOutputStream()
Returns an output stream for this socket.
3)输出数据
4)建立输入管道,通过Socket的实例获取网络的输出节点流。
InputStream getInputStream()
Returns an input stream for this socket.获取网络节点流。
5)接受数据
6)关闭Socket
void close()
Closes this socket