java tcp ip通信_Java中Socket实现TCP/IP协议的通信

TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。

Java中的网络支持

针对网络通信的不同层次,Java提供了不同的API,其提供的网络功能有四大类:

①InetAddress:用于标识网络上的硬件资源,主要是IP地址

②URL:统一资源定位符,通过URL可以直接读取或写入网络上的数据

③Sockets:使用TCP协议实现的网络通信Socket相关的类

④Datagram:使用UDP协议,将数据保存在用户数据报中,通过网络进行通信。

TCP编程:

TCP协议是面向连接的、可靠的、有序的、以字节流的方式发送数据,通过三次握手方式建立连接,形成传输数据的通道,在连接中进行大量数据的传输

Java中基于TCP协议实现网络通信的类有客户端的Socket类和服务器端的ServerSocket类

740688-20150907234728090-211300057.jpg

socket实现通信包括服务端和客户端

服务器端:

① 创建ServerSocket对象,绑定监听端口,端口一般选择1024-65535的某个端口

② 通过accept()方法监听客户端请求

③ 连接建立后,通过输入流读取客户端发送的请求信息

④ 通过输出流向客户端发送相应信息

⑤ 关闭相关资源

public class server {

public static void main(String[] args){

try {

//1.创建一个serverSocket,绑定监听端口

ServerSocket serverSocket=new ServerSocket(8888);

//2.调用accept()方法开始监听,等待客户端连接

System.out.println("服务器即将启动 等待客户端连接");

Socket socket=serverSocket.accept();

//3.获取输入流,用来读取客户端发送的信息

InputStream is=socket.getInputStream();//字节输入流;

InputStreamReader isr=new InputStreamReader(is);//将字节输入流转换为字符输入流

BufferedReader br=new BufferedReader(isr);//为输入流添加缓冲

//循环读取客户端提交的信息

String info=null;

while ((info=br.readLine())!=null){//循环读取

System.ou

你可能感兴趣的:(java,tcp,ip通信)