TCP网络通信(可靠协议)

一、Socket通信模型

  • 利用套接字(Socket)开发网络应用程序早已被广泛采用,以至于成为事实上的标准。
  • 通信的两端都要有Socket,是两台机器间通信的端点。
  • 网络通信其实就是Socket间的通信。
  • Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输。
  • 一般主动发起通信的应用程序为客户端,等待通信请求的为服务端。

在这里插入图片描述

二、关于TCP(传输控制协议):
类别:传输层
特点:

  • 基于流的方式面向连接
  • 可靠通信方式
  • 网络状况不佳的时候尽量降低系统由于重传带来的带宽开销
  • 通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。

三、模拟TCP协议下的网络通信
客户端:

package 模拟TCP协议下的网络通信;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client客户端 {
	public static void main(String[] args) throws UnknownHostException, IOException {

		// 创建客户端Socket
		Socket s = new Socket("10.255.96.129", 8888);

		// 获取(output)输出流对象
		OutputStream out = s.getOutputStream();

		// 发送数据
		String date = "Helo,你好啊,兄dei!";
		out.write(date.getBytes());

		// 关闭流对象
		out.close();
	}
}

服务端:

package 模拟TCP协议下的网络通信;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server服务端 {
	public static void main(String[] args) throws IOException {
		// 创建ServerSocket对象
		ServerSocket ss = new ServerSocket(8888);

		// 监听(阻塞)
		Socket t = ss.accept();

		// 获取读取(input)流对象
		InputStream in = t.getInputStream();

		byte[] b = new byte[1024];
		int len = 0;
		while ((len = in.read(b)) != -1) {
			String date = new String(b, 0, len);
			System.out.println(date);
		}
		// 服务端一般不关闭流对象
	}
}

程序运行后,在服务端接收到了客户端的信息。

在这里写的只是简单的Clinet—>Server
实际上在JavaWeb上经常使用的是 浏览器—>tomcat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hudie.

不要打赏!不要打赏!不要打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值