基于TCP协议网络编程
1、TCP/IP是一种可靠的网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路;
一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路来进行通信;
2、Java对基于TCP协议的网络通信提供了良好的封装;
Java使用Socket对象来代表两端的通信端口;
并通过Socket产生的IO流来进行通信;
3、【IP协议】:
1.1 Internet上使用的很重要的一个协议,即Internet协议,简称IP协议;
1.2 通过使用IP协议,从而使Internet成为一个 允许连接不同计算机和不同操作系统 的网络;
1.3 要使两台计算机进行通信,必须使用同一种通信协议;
1.4 IP协议只保证计算机能够发送和接受分组数据;
1.5 IP协议负责 将消息从一个主机到另一个主机,发送过程中被分割成一个个的包;
1.6 尽管计算机安装了IP软件,保证了计算机之间可以正常发送和接受数据,但IP协议不能解决数据分组在传输过程中出现的问题;
1.7 若要解决数据分组在传输过程中的问题,还必须安装TCP协议来提供可靠并且无差错的通信服务;
4、【TCP协议】:
1.1 TCP协议又被称为端对端协议,为两台计算机之间的连接起到了重要的作用:当一台计算机与另一台计算机连接时,TCP协议
会让他们建立一个连接(用于发送和接受数据的虚拟链路);
1.2 TCP协议负责收集这些数据包,并将其按适当的顺序放好传送,在接收端接受后再将其正确的还原;
1.3 TCP协议保证了数据包在传输过程中准确无误;
1.4 TCP协议使用 重发机制:当一个通信实体发送消息给另一个通信实体后,需要收到另一个通信实体的确认信息,如果没有收到
另一个通信实体的确认信息,将会再次重发刚才的消息;
1.5 TCP协议的重发机制,使它能够适应各种变化,即使在Internet堵塞的情况下,也能保证通信的可靠;
5、【创建TCP服务端】
1.1 Java中能够接受其他通信实体连接请求的是ServerSocket类(用来监听来自客户端的Socket连接,如果没有连接,将一直等待);
构造器:
ServerSocket(int port); 用指定端口创建ServerSocket,端口范围:0~65535;
方法:
Socket accept(); 如果接受到一个客户端Socket的连接请求,将返回一个该客户端Socket对应的Socket;
1.2 建立连接后,返回客户端Socket对应的Socket;
方法:
InputStream getInputStream(); 通过该Socket产生的输入流来取出数据
OutputStream getOutputStream(); 通过该Socket产生的输出流向客户端写数据
6、【创建TCP客户端】
1.1 客户端可 使用构造器 来连接指定的服务器:
构造器:
Socket(InetAddress/String remoteAddress,int prot); 创建连接到指定主机、端口的Socket;
eg:Socket socket=new Socket("127.0.0.1",8080); 程序执行该代码,将连接到指定主机、端口的服务器;
1.2 建立连接后,服务器端返回客户端Socket对应的Socket;
方法:
InputStream getInputStream(); 通过该Socket产生的输入流来取出数据
OutputStream getOutputStream(); 通过该Socket产生的输出流向客户端写数据
基于TCP协议网络编程的更多相关文章
- Qt基于tcp协议网络编程
基于Qt网络编程: 基于tcp协议 c/s模式编程 所需要的类:QTcpServer QTcpSocket 利用qt基于tcp协议编写c/s模式程序: 两个类中的信号: QTcpServer : ne ...
- (1)线程的同步机制 (2)网络编程的常识 (3)基于tcp协议的编程模型
1.线程的同步机制(重点)1.1 基本概念 当多个线程同时访问同一种共享资源时可能会造成数据的覆盖和不一致等问题,此时就需要对线程之间进行协调和通信,该方式就叫线程的同步机制. 如: 2003年左右 ...
- (1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型
1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将 ...
- (1)基于tcp协议的编程模型 (2)tcp协议和udp协议的比较 (3)基于udp协议的编程模型 (4)反射机制
1.基于tcp协议的编程模型(重中之重)1.1 编程模型服务器: (1)创建ServerSocket类型的对象,并提供端口号: (2)等待客户端的连接请求,调用accept()方法: (3)使用输入输 ...
- Java:基于TCP协议网络socket编程(实现C/S通信)
目录 一.前言:TCP原理简介 二.Socket编程通信 三.TCP服务器端(具体代码) 四.TCP客户端(具体代码) 五.通信效果演示 六."创意"机器人:价值一个亿的AI核心代 ...
- 基于TCP的网络编程
HTTP协议,FTP协议等很多广泛应用的协议均基于TCP协议.TCP编程主要为C/S模式,客户端和服务器之间的程序设计存在较大差异. TCP编程框图 服务器调用socket().bind().list ...
- JavaSE——TCP协议网络编程(一)
实现客户端与服务端的连接: 创建TCP服务端的 ServerSocket ServerSocket :此类实现服务器套接字.服务器套接字请求通过网络传入,基于该请求执行某些操作,然后可能向请求者返回结 ...
- JavaSE——TCP协议网络编程(二)
1.Java网络编程与多线程的综合应用: 类Socket提供了方法getInputStream ()和getOutStream()来得到对应的输入/输出流以进行读/写操作,这两个方法分别返回Input ...
- Java中基于HTTP协议网络编程
java中为我们的网络支持提供了java.net包,能够使我们以编程的方式来訪问Web服务功能,这篇博客,就跟大家分享一下.Java中的网络编程的知识.主要是学习下该java.net包下的API. U ...
随机推荐
- display:inline-bock的注意
前端当一组元素设置为display:inline-block;时,每个元素之间的回车会被作为一个空格.
- codeforces 659F F. Polycarp and Hay(并查集+bfs)
题目链接: F. Polycarp and Hay time limit per test 4 seconds memory limit per test 512 megabytes input st ...
- kettle脚本定时任务不执行
问题描述:在centos机器上部署了kettle脚本,每天定时跑一次,但是并没有成功跑,手动执行命令是可以的.而且写了一个测试的shell脚本也是可以执行的. 解决方案: 将2的错误输出,/usr/l ...
- string类封装
class cMyString{ char* m_str; int m_strSize;public: cMyString();//指针指向一个空字符串 cMyString(char* str);// ...
- BZOJ1067&P2471 [SCOI2007]降雨量[线段树裸题+细节注意]
dlntqlwsl 很裸的一道线段树题,被硬生生刷成了紫题..可能因为细节问题吧,我也栽了一次WA50分.不过这个隐藏条件真的对本菜鸡来说不易发现啊. 未知的年份连续的就看成一个就好了,把年份都离散化 ...
- P2743(poj1743) Musical Themes[差分+后缀数组]
P2743 乐曲主题Musical Themes(poj1743) 然后呢这题思路其实还是蛮简单的,只是细节特别多比较恶心,忘记了差分带来的若干疏漏.因为转调的话要保证找到相同主题,只要保证一段内相对 ...
- Btree算法的C语言实现
btree.h //实现对order序(阶)的B-TREE结构基本操作的封装. //查找:search,插入:insert,删除:remove. //创建:create,销毁:destory,打印:p ...
- vijos:P1285佳佳的魔法药水
背景 发完了k张照片,佳佳却得到了一个坏消息:他的MM得病了!佳佳和大家一样焦急万分!治好MM的病只有一种办法,那就是传说中的0号药水……怎么样才能得到0号药水呢?你要知道佳佳的家境也不是很好,成本得 ...
- C# FileStream Write追加写入文本
该例子为追加 C盘中的 file1.txt 的文本内容 完整代码如下: 引入命名空间: [csharp] view plain copy print? using System.IO; 完整代码: [ ...
- Word直接发表博客测试
这是我现在使用的VSCode! 这是另一段测试内容!