基本Socket通信流程
服务器常用模型
1.初始化Socket (用于监听)
1)初始化
SOCKET s ;
s = Socket ( ... )
2)绑定
bind(s, ...);
3)监听
listen(s, ...);
2.建立连接
1)检查状态
int ret = select ( ... ) ;
if ( ret > 0 ) {
//新连接
}
2)建立新连接 (如果有客户端请求连接)
temp = accept ( ... ); // 注意,此时并不使用原来的Socket,而是新建一个Socket (temp)来跟客户端通信
3.收发数据
1)检测读入数据
int ret = select ( ... )
if ( ret > 0 ) {
// 有新数据
}
2)接收数据
ret = recv ( ...);
3)检查发送数据
int ret = select ( ... ) ;
4)发送数据
ret = send ( ... );
客户端常用模型
1.初始化
1)创建Socket
s = Socket ( ... )
2)绑定端口
bind(s , ... ) ; // 客户端的IP地址和端口都不需要固定,可由系统自动分配。因此可以不使用bind绑定端口与协议。
2.建立连接
connect( ... )
3.收发数据
同服务端
4.关闭连接
基本Socket通信流程的更多相关文章
- Socket通信流程
Socket通信流程 HTTP 底层就是通过socket建立连接通信管道,实现数据传输 HTTP是一个TCP的传输协议(方式),它是一个可靠,安全的协议
- Winsock系列函数 及 Socket通信流程
Socket是一种网络通信机制 Winsock系列函数 1. Socket 创建socket 2. Connect 尝试连接远端Socket 3. Send 在某个Socket 向远端 ...
- 网络编程-SOCKET开发之----3. socket通信工作流程
1. TCP的socket通信流程 服务端 1)socket----创建socket对象. 2)bind----绑定本机ip+port. 3)listen----监听来电,若在监听到来电,则建立起连接 ...
- Cocos2d-X网络编程(4) Cocos2d中的网络通信协议——Socket通信
Socket,俗称网络套接字,本身并不是协议,而是一个调用接口,是对TCP/IP协议的封装和应用,.提供了一系列方法方便开发者进行网络通讯. TCP/IP协议是使用最早的通讯协议,它是传输层协议,主要 ...
- 第二十六天- C/S架构 通信流程 socket
1.C/S架构 C/S架构:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可是物理层面)来划分的.这里客户端一般指需先安装再执行的应用程序,对操作系统依赖性较 ...
- 什么是 socket?简述基于 tcp 协议的套接字通信流程?
Socket的英文原义是"孔"或"插座".通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄, 可以用来实现不同虚拟机或不同计 ...
- Socket 通信(基础原理、实时聊天系统雏形)
什么是 Socket? Socket 英文直译为"孔或插座",也称为套接字.用于描述 IP 地址和端口号,是一种进程间的通信机制.你可以理解为 IP 地址确定了网内的唯一计算机,而 ...
- C#版 Socket编程(最简单的Socket通信功能)
示例程序是同步套接字程序,功能很简单,只是客户端发给服务器一条信息,服务器向客户端返回一条信息:这里只是一个简单的示例,是一个最基本的socket编程流程,在接下来的文章中,会依次记录套接字的同步和异 ...
- 使用ObjectOutputStream进行socket通信的时候出现固定读到四个字节乱码的问题
问题描述: 最近在写一个通信相关的项目,服务器端和客户端通过socket进行通信.本来想利用read的阻塞特性,服务器端和客户端按照一定的流程进行文件读写.结果发现客户端或者服务器read方法一直都返 ...
随机推荐
- Leetcode: Self Crossing
You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metres to th ...
- Opencv读取各种格式图片,在TBitmap上面重绘
//opencv读取图片 cv::Mat image; //const char *fileName = "HeadImage-UI/Photo-001.bmp"; const c ...
- Android中异步类AsyncTask的理解
这里有两种解释的方法,各有侧重点: 第一种解释: Async Task 简介:AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦 ...
- HDU 4513 吉哥系列故事——完美队形II(Manacher)
Problem Description 吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成 ...
- swt byte[] 与 Image的转换
1. 从byte[]得到Image private static Image createImage(byte[] imageBytes) { Image image = null; try { By ...
- paper 86:行人检测资源(上)综述文献【转载,以后使用】
行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智能机器人等领域.从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,主要还是在性能和速度方面还不能达到一个 ...
- 夺命雷公狗ThinkPHP项目之----企业网站16之文章批量删除的完成
我们在做一个网站时候经常会遇到批量删除这个选项,其实也很简单,我们之需要用用jq实现出来效果然后通过表单post过去后端即可实现: 我们做这个功能前必须要先引入jq,我的jq版本是1.8.3,方法如下 ...
- Power Gating的设计(架构)
switching network的层次: 一般选择flatted的形式,hierarchy的结构对voltage drop和performance delay有影响. Power network的结 ...
- SQL —— 视图
1. 为什么使用视图 1) 提高数据的安全型,不同权限的用户可以查看数据的不同. 2) 符合用户日常业务逻辑 2. 什么是视图 视图是一种查看数据库中一个或多个表中的数据的方法. 视图是一种虚拟表. ...
- PHP 文件上传的综合实例
1.upload.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <htm ...