建立简单的服务器端和客户端

基于TCP协议的网络编程
TCP/IP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket(接口),从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。
Java对基于TCP协议的网络通信提供了良好的封装,Java使用Socket对象来代表两端的端口并通过Sokcet产生IO流来进行网络通信.
TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口。套接字用(IP地址:端口号)表示。
套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,
简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。
非常简单的举例说明下:Socket=Ip address+ TCP/UDP + port。
连接方式编辑
应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。
(1)InetAddress类
在这里插入图片描述
2)基于TCP协议的网络编程 :
TCP/IP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路,一旦建立了虚拟的网络链接,两端的程序就可以通过虚拟链路进行通信。
Java对基于TCP协议的网络通信提供了良好的封装,Java使用Socket对象来代表两端的端口,并通过Socket产生IO流来进行网络通信。
Java程序可以非常方便地访问互联网上的HTTP服务、FTP服务等,并可以直接取得互联网上的远程资源,
还可以向远程资源发送GET、POST请求。实际上Java的网络通信非常简单,服务器通过ServerSokcket建立监听,客户端通过Socket连接到指定服务器后,通信双方就可以通过IO流进行通信。

 TCP/IP编程	
	服务端
		ServerSocket类
	客户端	
		Socket类

Java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问的Web服务功能。
使用ServerSocket创建TCP服务器端
在两个通信实体没有建立虚拟链路之前,必须有一个通信实体先做出“主动姿态”,主动接收来自其他通信实体的连接请求。Java中能接收其他通信实体连接请求的类是ServerSocket,
ServerSocke对象用于监听来自客户端的Socket连接,如果没有连接,它将一直处于等待状态,
ServerSocket包含一个监听来自客户端连接请求的方法。
ServerSocket(int port):用指定的端口port来创建一个ServerSocket,该端口应该有一个有效的端口整数值,即0~65535
ServerSocket使用完毕后,应使用ServerSocket的close()方汉来关闭该ServerSocket。
在通常情况下,服务器不应该只接收一个客户端请求,而应该不断地接收来自客户端的所有请求,
所以java程序通常会通过循环不断地调用ServerSockcet的accept()方法,
端口号:通常推荐使用1024以上的端口,主要是为了避免与其他端口号发生冲突
Socket提供了如下两个方法来获取输入流和输出流。
1.InputStream getInputStream():返回该Socket对象对应的输入流,让程序通过该输入流从Socket中取出数据。
2.OutputStream getOutputStream():返回该Socket对象对应的输出流,让程序通过该输出流向Socket中输出数据.

服务器端:
在这里插入图片描述
客户端:
在这里插入图片描述
下面的服务器端程序非常简单,它仅仅建立ServerSocket监听,并使用Socket获取输入输出。
在这里插入图片描述
在这里插入图片描述
下面案例实现多线程聊天室,在这个程序中,每个客户端都会与服务端建立sokcet,从而保持通话实时连接,这样客户端可以随时与服务器端发送数据,当服务器端接收到任何一个客户端发来的数据后,再将该数据依次向每个客户端发送一遍。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40645193/article/details/107269564
今日推荐