java笔记之网络知识--—TCP
TCP通讯协议特点:
1. tcp是基于IO流进行数据 的传输 的,面向连接。
2. tcp进行数据传输的时候是没有大小限制的。
3. tcp是面向连接,通过三次握手的机制保证数据的完整性。 可靠协议。
4. tcp是面向连接的,所以速度慢。
5. tcp是区分客户端与服务端 的。
比如: 打电话、 QQ\feiQ的文件传输、 迅雷下载....
tcp协议下的Socket:
Socket(客户端) , tcp的客户端一旦启动马上要与服务端进行连接。
ServerSocket(服务端类)
tcp的客户端使用步骤:
1. 建立tcp的客户端服务。
2. 获取到对应的流对象。
3.写出或读取数据
4. 关闭资源。
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; public class IpSender {public static void main(String[] args) throws IOException {//建立tcp的服务Socket socket = new Socket(InetAddress.getLocalHost(),9090);//获取到Socket的输出流对象OutputStream outputStream = socket.getOutputStream();//利用输出流对象把数据写出即可。outputStream.write("服务端你好".getBytes()); //获取到输入流对象,读取服务端回送的数据。InputStream inputStream = socket.getInputStream();byte[] buf = new byte[1024];int length = inputStream.read(buf);System.out.println("客户端接收到的数据:"+ new String(buf,0,length)); //关闭资源 socket.close(); }}
服务端
java.net.BindException: 端口被占用。
ServerSocket的使用 步骤
1. 建立tcp服务端 的服务。
2. 接受客户端的连接产生一个Socket.
3. 获取对应的流对象读取或者写出数据。
4. 关闭资源。
为什么ServerSocket不设计一个getInputStream与getOutputStream 呢?
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket;public class IpReceive {public static void main(String[] args) throws IOException {//建立Tcp的服务端,并且监听一个端口。ServerSocket serverSocket = new ServerSocket(9090);//接受客户端的连接Socket socket = serverSocket.accept(); //accept() 接受客户端的连接 该方法也是一个阻塞型的方法,没有客户端与其连接时,会一直等待下去。//获取输入流对象,读取客户端发送的内容。InputStream inputStream = socket.getInputStream();byte[] buf = new byte[1024];int length = 0;length = inputStream.read(buf);System.out.println("服务端接收:"+ new String(buf,0,length));//获取socket输出流对象,想客户端发送数据OutputStream outputStream = socket.getOutputStream();outputStream.write("客户端你好啊!".getBytes()); //关闭资源 serverSocket.close();} }
转载于:https://www.cnblogs.com/AllenRandolph/p/7055066.html
java笔记之网络知识--—TCP相关推荐
- 【java笔记】网络编程概述
[java笔记]TCP通信程序_m0_52043808的博客-CSDN博客 [java笔记]网络编程:文件上传案例_m0_52043808的博客-CSDN博客 网络编程: 在一定协议下,实现两台计算机 ...
- java socket ip_JAVA 网络编程 TCP/IP、Socket 和协议设计
[JAVA 网络编程 TCP/IP.Socket 和协议设计] TCP/IP 协议简介 IP 首先我们看 IP(Internet Protocol)协议.IP 协议提供了主机和主机间的通信. 为了完成 ...
- C语言笔记(27)网络编程-TCP编程
CS模式 有个服务器, 有个客户端, 会经过一些函数 linux下,所有的操作都是对文件进行操作,而对文件的操作是利用文件描述符(file descriptor)来实现的.每个文件进程控制块中都有一份 ...
- Java中的网络和TCP/IP协议
网络和TCP/IP协议 一.网络通信协议 1.1 协议和七层模型 1.2 TCP/IP协议 二.网络通信的实现 2.1 TCP协议通信 2.2 UDP协议通信 前言: 有时候我们会不理解,我们在QQ上 ...
- java全双工_java网络编程TCP聊天全双工
我正在实现服务器和客户端之间的简单TCP聊天.我使用多线程,因此服务器和客户端可以同时发送和接收数据(全双工).该程序可以工作,但如果服务器有一个控制台既可以输入发送消息,也可以显示接收消息(对于客户 ...
- 大数据 -- java基础16 网络编程 TCP UDP
1.网络编程的三要素:(1)IP地址(2)端口号(3)协议 2.IP地址 : 网络中计算机唯一标识. (1)IP地址在计算机中存储的时候是由二进制的形式进行存储的:IP:192.168.7.42 十进 ...
- 黑马程序员 java基础之网络编程TCP
TCP网络传输. 客户端和服务端 分别对应着两个对象. Scoket(客户端)和ServerSocket(服务端). Socket(String address, int port) 创建一个流套接 ...
- 【java笔记】网络编程:文件上传案例
原理:文件的复制 客户端读取本地的文件,把文件上传到服务器,服务器把上传的文件保存到服务器的硬盘上 步骤: 1.客户端使用本地的字节输入流,读取要上传的文件 2.客户端使用网路字节输出流,把读取的文件 ...
- [网络知识]TCP协议中的粘包与拆包
在平时客户端socket开发中,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题. 我们都知道TCP属于传输层 ...
最新文章
- AI计算量每年增长10倍,摩尔定律也顶不住 | OpenAI最新报告
- 以太经典(ETC)逆势上涨,将逆袭反超以太坊(ETH)?
- 女生学计算机教学,女生学计算机专业好吗 计算机辅助数学教学之我见
- 神经网络 深度学习 专业术语解释(Step, Batch Size, Iteration,Epoch)
- python列表的append和extend
- python实现websocket服务端
- 2019年自考计算机应用基础(实践),2019年自考计算机应用基础模拟题及答案(8)...
- Access数据库注入
- java 里面matches什么意思_Java Regex中的matches()和find()之间的区别
- HITACHI日立印刷机电源维修W-PSX175
- 新版捷兔云支付网站源码开源版 第三方支付源码 第四方支付源码 免签约支付源码
- 模式识别应用于哪些领域,模式识别技术的发展是大势所趋
- goolgle版本87.0乱码设置utf-8,附有charset插件
- 【xubuntu-22.04】精简模式,给intel 盒子安装系统,使用稳定,内存cpu占用低,比之前的版本更加稳定,可以做个服务器使用,也可以上网,功耗低
- 红帽子linux编译命令,Linux REDHAT下安装内核源代码详细步骤教程
- 计算机 常用的逻辑运算有哪些,常用布尔逻辑运算符有哪些
- mysql修改索引语句_mysql——创建索引、修改索引、删除索引的命令语句
- 解决Word文档中表格不会自动换页,而是在同一页word上往下换行的问题。
- 浅谈精益数字化工厂(Lean Digital Factory, LDF)
- 【程序员学理财】曼昆:经济学十大原理,你都了解吗?