【Javaee】网络编程-TCP Socket

前言

前文中我们介绍了UDP Socket相关的构造方法和方法,并实现了UDP的回显服务器和客户端。

本篇将介绍TCP Socket,并使用TCP Socket api实现服务器和客户端的通信


一.TCP Socket的常见方法

1.ServerSocket

ServerSocket是创建TCP服务端Socket的API

1)ServerSocket构造方法

方法签名 方法说明
ServerSocket(int port) 创建⼀个服务端流套接字Socket,并绑定到指定端⼝

2)ServerSocket方法

方法签名 方法说明
Socket accept() 开始监听指定端⼝(创建时绑定的端⼝),有客⼾端连接后,返回⼀个服务端Socket对象,并基于该 Socket建⽴与客⼾端的连接,否则阻塞等待
void close()

关闭此套接字

TCP建立连接的流程是操作系统内核完成的,代码感知不到,accept()操作是内核已经完成了连接建立的操作,accept()是确定对该连接进行处理(确认操作)。

如果没有客户端请求,则会阻塞。

accept会返回一个Socket对象,服务器每调用一次accept都会产生一个新的Socket对象,来和客户端进行“一对一服务”。

2.Socket

Socket 是客⼾端Socket,或是服务端中接收到客⼾端建⽴连接(accept⽅法)的请求后,返回的服务端Socket。

不管是客⼾端还是服务端Socket,都是双⽅建⽴连接以后,保存的对端信息,及⽤来与对⽅收发数据的。

1)Socket构造方法

方法签名 方法说明
Socket(String host,int Port) 创建⼀个客⼾端流套接字Socket,并与对应IP的主机上,对应端⼝的进程建⽴连接

2)Socket方法

方法签名 方法说明
InetAddress getInetAddress() 返回套接字所连接的地址
InputStream getInputStream() 返回此套接字的输⼊流
OutputStream getOutputStream() 返回此套接字的输出流

二.TCP服务器端实现

1.代码实现

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.Provider;
import java.util.Scanner;

public class TcpServer {
    private ServerSocket serverSocket=null;
    public TcpServer(int port) throws IOException {
        serverSocket=new ServerSocket(port);
    }
    public void start() throws IOException {
        System.out.println("服务器启动");
        while(true){

你可能感兴趣的:(JavaEE学习之路,网络,java,java-ee,网络协议,开发语言)