26-网络编程-10-网络编程(TCP协议-客户端)

/*
 * 【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就是断开连接,那么流自然也没有了。
		
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值