文章目录
一.TCP
- 表示传输控制协议,是一种面向连接(连接导向)的,可靠的,基于字节流的运输层通信协议.在Socket程序开发中,服务端使用ServerScoket等待客户的连接,在Java网络中,每一个客户端都使用Socket对象表示.
- ServerSocket:TCP的服务端类,用于接受客户端的连接请求和相应客户端
构造方法:
- public ServerSocket(int port) thows IOException:创建ServerSocker对象,并监听指定的端口
常见方法:
- public Socket accept() throws IOException:等待客户端连接,该方法连接之前一直处于阻塞状态.
- public InetAddress getInetAddress():返回此服务端的IP对象.
- public void close():关闭ServerSocket对象
- Socket:表示每一个客户端连接对象.
构造器 :
- Socket(String host,int port):根据服务端的主机名称和端口创建Socket对象.
常见方法: - public InputStream getInputStream():返回输入流对象
- public OutputStream getOutputStream():返回输出流对象
- public void close():关闭Socket连接
服务端:
//服务端
public class TCPServerSocketDemo {
public static void main(String[] args) throws IOException {
//创建ServerSocket对象,并监听8888端口, 需要抛出IO异常
ServerSocket server = new ServerSocket(8888);
System.out.println("等待客户端连接");
Socket client = server.accept();//等待客户端连接,得到连接的客户端
//得到客户端IP
System.out.println("客户端 IP = " + client.getLocalAddress());
String msg = "Hello,huangkun";
//创建打印流
PrintStream ps = new PrintStream(client.getOutputStream());
//打印
ps.print(msg);
client.close();
server.close();
}
}
客户端:
//客户端
public class Client {
public static void main(String[] args) throws IOException {
//根据服务端的主机名称和端口创建Socket对象, 抛出IO异常
Socket client = new Socket("127.0.0.1", 8888);
//创建缓冲流
BufferedReader br = new BufferedReader(new BufferedReader(new InputStreamReader(client.getInputStream())));
//读取一行
String str = br.readLine();
System.out.println("Server : " + str);
//关闭
client.close();
br.close();
}
}