TCP实现计算机设备通信连接,是一种面向连接,基于字节流的传输层通信协议,我们必须要建立客户端与服务器的连接才能实现信息的交互。
先来说说使用网络编程时会遇到的Socket相关的概念,应用程序通过Scoket来建立远程连接,Socket通过内部封装好的协议把数据传输到网络(TCP就是被封装好在socket类中)。java提供的socket相关类有ServerSocket类、Socket类。
进行网络通信,IP地址是不可缺少的,但仅仅单使用IP地址,当多个应用程序同一时间运行,操作系统收到一个数据包,只有IP地址,它无法判断出应该发给哪一个应用程序,所以 操作系统抽象出Socket接口,每个程序通过不同的Socket(由端口号和IP地址组成),操作系统根据不同Socket对应发送到不同的应用程序。
对“服务器端”来说,它的Socket是指定的IP地址和指定的端口号;
对“客户端”来说,它的Socket 是它所在计算机的IP地址和一个由操作系统分配的随机端口号
1、首先我们来看【服务器端】 服务器要创建ServerSocket进行通信的对象,并传入一个端口号(8848)。让服务器进入“等待”待状态,等待8848端口号的连接。服务器端通过下述代码,在指定端口8848监听。
//serverSocket:服务器端进行通信的对象
ServerSocket server=new ServerSocket(8848);
//服务器正式进入“等待”状态
Socket client=server.accept();
为了待会能够确认一个客户端的连接 所以我们获取一下连接的客户端的IP并打印。
InetAddress clientNetAddress=client.getInetAddress();
//在服务器端打印显示客户端开始连接
System.out.println("客户端"+clientNetAddress.getHostAddress()+"开始连接");
2、【客户端】 要和服务器连接,我们只需要一个简单的代码就可以完成,目前只讨论客户端一次连接服务器就终止程序,想要多次多个连接,服务器创建循环执行accept()方法即可。
Socket clien