/*
* 【TCP】传输
* (1)Socket和ServerSocket
* (2)建立客户端(用Socket)和服务器端(用ServerSocket)
* (3)建立连接后,通过Socket中的IO流进行数据的传输
* (4)关闭Socket
*
* 同样,客户端与服务器端是两个独立的应用程序。TCP必须先建立连接才能传输。
*/
/*
* 先说客户端,利用Socket类,打开API,点进java.net包,找到Socket类:
* 此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点。
* 其内构造方法有好几个,第一个是默认形式,但是未连接(可通过该类特有方法connect指定连接),由于TCP必须先建立可靠连接,
* 所以我们不用第一个构造函数,随机选择:
* public Socket(String host,int port)throws UnknownHostException,IOException
*/
/*
* 【注意】
* 客户端与服务端之间可用Socket流进行连接,该流不是程序员创建的,而是底层创建的,因为比如利用构造函数
* public Socket(String host,int port)throws UnknownHostException,IOException
* 就自动在底层创建了一个Socket流,该流既能读又能写,既有输入也有输出,如本地主机访问新浪主页就是通过Socket流在本地
* 主机和新浪服务器主机之间进行数据传输。
*/
//【套接字就是指Socket】
package demo;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class TCPDemo {
public static void main(String[] args) throws UnknownHostException, IOException {
/**
* TCP传输,建立客户端的过程:
*
* 1.创建TCP客户端Socket服务,使用的是Socket对象。
* 建议该对象一创建就明确目的地,要连接的主机。
*
* 2.如果连接建立成功,说明数据传输通道已建立。
* 该通道就是Socket流,是底层建立好的。既然是流,说明这里既有输入,又有输出。想要输入或者输出流对象,
* 可以找Socket来获取。可以通过getInputStream()和getOutputStream()来获取两个字节流。
*
* 3.使用输出流,将数据写出。
* (因为:现在要将数据写入服务端,服务端是网络,即把数据从本地主机【写出】到服务端)
*
* 4.关闭资源。
*/
//【注意】提到客户端、服务端一定是TCP服务,提到发送端、接收端一定是UDP服务。
//创建客户端Socket服务
Socket socket = new Socket("10.196.19.56",10000);
//获取Socket中的输出流
OutputStream out = socket.getOutputStream();
//使用输出流将指定的数据写出去
out.write("TCP演示".getBytes());//OutputStream是字节流,所以用getBytes()将字符串转为字节
//关闭资源
socket.close();
//【注意】若关闭Socket,那么无需再关闭由Socket获取到的流对象,因为关闭Socket就是断开连接,那么流自然也没有了。
}
}
26-网络编程-10-网络编程(TCP协议-客户端)
最新推荐文章于 2023-05-19 19:20:58 发布