目录
TCP常用API
ServerSocket:专门给服务端使用的socket。
Socket:既可以提供给客户端使用,也可以给服务端使用。
ServerSocket
构造方法:
方法签名 | 方法说明 |
ServerSocket(int port) | 创建一个服务端嵌套字,并且指定服务端所占用的进程 |
成员方法 accept:
方法签名 | 方法说明 |
---|---|
Socket accept() | TCP是"有连接"的协议,TCP客户端与服务端一定要建立连接,才可以互相发送消息。因此这个accept方法,返回的socket对象,服务端就是通过这个socket对象和客户端进行通信的。 如果服务端没有收到socket对象,那么就会阻塞等待,无法进行通信。 |
Socket
对于服务端来说,是由accept()方法返回的的,返回的socket对象用于和客户端进行通信。
构造方法 :
对客户端来说,构造方法构造对象时需要指定ip地址和端口号,这个ip和端口号是服务端的
两个普通常用的方法:
方法签名 | 方法说明 |
getInputStream() | 通过socket对象,获取到内部的输入流对象 |
getOutputStream() | 通过socket对象,获取到内部的输出流对象 |
TCP服务端(单线程)
属性+构造方法:
需要在TcpEchoServer内部封装一个属性,这个属性是ServerSocket。
在构造方法当中,需要指定ServerSocket占用哪个端口号,此端口号就是服务端的端口号
代码编写
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.util.Scanner;
public class TcpEchoServer {
/**
* 用于TCP客户端和服务端通信的socket对象
*/
private ServerSocket serverSocket;
/**
* 构造方法指定服务端所占用的端口号
*/
public TcpEchoServer(int port) throws IO