TCP/IP 通信又叫socket 通信,是基于TCP/IP协调面向连接的一个数据传输技术。
是属于OSI国际标准的传输层,三次握手 提供数据,有序,安全,端到端的传输和接收。
它有三个主要协议:传输控制协议(TCP),用户数据包协议(UDP)和互联网控制消息协议(ICMP)。
通过socket 连接,建立起一条网络线路,数据就可以流通了。包括短连接,和长连接
两种情况,短连接:在每一次建立连接传输完报文后,就会断开,
长连接:在每一次建立连接传输完报文后,并不会断开,需要不断的发送检测包来保持socket
线程的连接状态。
 java语言已经对socket 通信做了很好的封装,在java.net.*包下。
 建立socket 通信需要如下步骤:
  服务器端:
  第一步:服务器开启服务监听到某个端口。
  第二步:服务器接收客户端连接
  第三步:读取客户端请求报文
  第四步:返回报文到客户端
  客户端:
  第一步:建立socket通信,访问某一个服务器IP和监听端口
  第二步:发送请求报文
  第三步:读取服务器端返回的数据报文

TCP/IP 通信的更多相关文章

  1. 使用Boost asio实现同步的TCP/IP通信

    可以先了解一下Boost asio基本概念,以下是Boost asio实现的同步TCP/IP通信: 服务器程序部分,如果想保留套接字之后继续通信,可以动态申请socket_type,保存指针,因为so ...

  2. 使用Boost asio实现异步的TCP/IP通信

    可以先了解一下Boost asio基本概念,以下是Boost asio实现的异步TCP/IP通信: 服务器: #include "stdafx.h" #include <io ...

  3. tcp/ip通信第5期之服务器端程序

    /* 此程序是tcp/ip通信服务器端程序,测试运行在redhat5上 重构readline函数,解决粘包问题——利用“\n”识别一个消息边界 */ #include<stdio.h> # ...

  4. tcp/ip通信第5期之客户机端程序

    /*此程序是tcp/ip通信的客户机端程序, 测试运行在redhat6系统上 重构readline函数,解决粘包问题——利用“\n”识别一个消息边界 */ #include<stdio.h> ...

  5. 第4章 TCP/IP通信案例:访问Internet上的Web服务器

    第4章 TCP/IP通信案例:访问Internet上的Web服务器 4.2 部署代理服务器 书中为了演示访问Internet上的Web服务器的全过程,使用了squid代理服务器程序模拟了一个代理服务器 ...

  6. TCP/IP通信过程(以发送电子邮件为例)(转)

    1.应用程序处理 (1)A用户启动邮件应用程序,填写收件人邮箱和发送内容,点击“发送”,开始TCP/IP通信: (2)应用程序对发送的内容进行编码处理,这一过程相当于OSI的表示层功能: (3)由A用 ...

  7. linux高性能服务器编程 (四) --TCP/IP通信案例

    第四章 TCP/IP通信案例 HTTP代理服务器的大致工作原理        在HTTP通信链上,客户端和服务器之间通常存在某些中转代理服务器.它们提供对目标资源的中转访问.一个HTTP请求可能被多个 ...

  8. TCP/IP通信网络基础

    TCP/IP是互联网相关的各类协议族的总称. TCP/IP的分层管理 分层的优点:如果只有一个协议在互联网上统筹,某个地方修改就要把所有的部分整体换掉,采用分层则只需要改变相应的层.把各个接口部分规划 ...

  9. tcp/ip通信传输流

    利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信,发送端从应用层往下走,接收端则往应用层方向走. 我们用HTTP进行举例 客户端在应用层发出想要看到某个web页面的http请求.HT ...

随机推荐

  1. 更强大的python正则表达式模块 -- regex

    python内置的正则表达库re比较弱,而且似乎在好几年里都没太大的变化. 这里介绍这个python模块regex,实现了更多方便好用的功能. 比如:\p{han} 可以匹配汉字, \p{Latin} ...

  2. 马凯军201771010116《面向对象与程序设计Java》第十五周学习知识总结

    实验十五  GUI编程练习与应用程序部署 一.知识学习部分 清单文件 每个JAR文件中包含一个用于描述归档特征的清单文件(manifest).清单文件被命名为MANIFEST.MF,它位于JAR文件的 ...

  3. 2Sum问题

    2Sum问题是3Sum和4Sum的基础,很多OJ都是以此为最简单的练手题的. 题目描述: 从一个数组里找出两个和为target的数. LeetCode上的描述: Given an array of i ...

  4. python学习笔记 18-4-11

    一.执行一个简单的代码 1.先创建目录 mkdir /home/dev 2.切换到目录 cd /home/dev 3.在目录下创建文件夹 vim hello.py 4.编辑文件内容 vim hello ...

  5. mac eclipse maven -solved

    最近开始用mac,在开始之初体验到了mac系统的丝滑流畅,但也感受到重新开始学习一个平台的坡度. 最近学习maven,创建项目时总是报错,网上查阅到的资料很少.最后在settings.xml中添加了阿 ...

  6. Arcgis做出voronoi图

    人类第一步,,,我需要给我目前的基站点数据划分voronoi,预期得到每个基站的服务范围 在地统计模块geostatistical analysis 下面的数据探索expore就有Voronoi图 将 ...

  7. AI之旅(5):正则化与牛顿方法

    前置知识   导数,矩阵的逆 知识地图   正则化是通过为参数支付代价的方式,降低系统复杂度的方法.牛顿方法是一种适用于逻辑回归的求解方法,相比梯度上升法具有迭代次数少,消耗资源多的特点. 过拟合与欠 ...

  8. Unity中对系统类进行扩展的方法

    Unity扩展系统类,整合简化代码 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  9. unity---背景循环滚动

    方法一:两张图无缝拼接 float speed = 3; void Update() { transform.Translate(Vector3.right * Time.deltaTime * sp ...

  10. maya模板lock工具

    #lockTemple import  maya.cmds  as  mcimport stringif  mc.window('LockWin',ex=1)==1:    mc.deleteUI(' ...