
TCP协议和socket编程
mainn
本人是移动互联应用技术专业,选择嵌入式开发方向。声明:博文的编写,主要参考网上资料,并结合个人见解,仅供学习、交流使用,如有侵权,请联系博主删除。...
展开
-
套接字socket--概念和实例
套接字 socket 套接字概念套接字是一种进程间通信的方法,不同于以往介绍的的进程通信方法的是,它并不局限于同一台计算机的资源,例如共享内容或者消息队列。一台机器上的进程可以使用套接字与另一台机器上的进程通信。因此客户与服务器可以分散到网络中。同一台机器的进程间也可以用套接字通信。 套接字的工作过程(服务器端)首先,服务器应用程序通过socket系统调用创建一个套...原创 2018-10-15 10:22:12 · 1227 阅读 · 0 评论 -
朱有鹏 socket编程接口介绍(3)
朱有鹏 socket编程接口介绍(3) 建立连接socket(man 2 socket)socket()函数类似于open()函数,用来打开一个网络连接,如果成功则返回一个网络文件描述符(int类型),之后我们操作这个网络连接都通过这个网络文件描述符。#include <sys/socket.h>int socket(int domain, int type, i...原创 2018-11-18 17:30:35 · 228 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手(图解)
https://blog.youkuaiyun.com/whuslei/article/details/6667471建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。【更新于2017.01.04 】该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删了,大家可以比较下,对比理解效果更好。这么久才来更新,抱歉!!错误配图如下...转载 2018-11-18 14:08:44 · 258 阅读 · 0 评论 -
朱有鹏 TCP协议(2)
朱有鹏 TCP协议(2) TCP的三次握手(1)建立连接需要三次握手(2)建立连接的条件:服务器listen(监听)时,客户端主动发起connect(连接) TCP的四次握手(3)关闭连接需要四次握手(4)服务器或者客户端都可以主动发起关闭注:这些握手协议已经封装在TCP协议内部,socket编程接口平时不用管 基于TCP通信的服务模式(1)具有公网...原创 2018-11-18 14:38:14 · 289 阅读 · 0 评论 -
朱有鹏 socket实际编程1(5)
朱有鹏 socket实际编程1(5) 服务器端程序编写(1)socket(2)bind(绑定)把当前电脑的IP地址、端口号和socket绑定一起。(3)listen(监听)(4)accept,返回值是一个fd,accept正确返回就表示我们已经和前来连接我的客户端之间建立了一个TCP连接了,以后我们就要通过这个连接来和客户端进行读写操作,读写操作就需要一个fd,这个fd...原创 2018-11-19 16:18:13 · 201 阅读 · 0 评论 -
朱有鹏 IP地址格式转换函数实践(4)
朱有鹏 IP地址格式转换函数实践(4) 使用man inet_addr可以看使用说明 (1)inet_addr(只兼容IPv4)、inet_ntoa、inet_aton (2)inet_pton(兼容IPv4、IPv6)、inet_ntop(兼容IPv4、IPv6) inet_addr:#include <stdio.h>#include ...原创 2018-11-19 14:26:02 · 205 阅读 · 0 评论 -
朱有鹏 TCP协议(1)
朱有鹏 TCP协议(1) 关于TCP(1)TCP协议工作在传输层,对上服务socket接口,对下调用IP层API调用TCP工作的,TCP调用IP工作的。(2)TCP协议面向连接,通信前必须先3次握手建立连接关系后才能开始通信。在通信之前,必须建立一个连接。(打电话)(3)TCP协议提供可靠传输,不怕丢包、乱序等。TCP协议就是一堆代码,这堆代码实现一个协议。 ...原创 2018-11-16 20:13:32 · 208 阅读 · 0 评论 -
朱有鹏 一个真正的网络通信socket的项目(8)
朱有鹏 一个真正的网络通信的项目(8) 流程:1、定义客户端和服务器之间的通信规律2、定义客户端和服务器之间的通信数据结构3、通过使用这个数据结构,客户端和服务器之间进行收发,不断地交换信息,传递信息 下面的代码就是一个模板,可以在它的基础上不断地叠加,做很多项目。譬如,客户端和服务器交换图象信息的程序,客户端向服务器发出一个命令:我要浏览所有的图片,服务器向客户端传...原创 2018-11-20 16:14:18 · 459 阅读 · 0 评论 -
朱有鹏 socket实际编程3(7)
朱有鹏 socket实际编程3(7) (1)客户端和服务器原则上都可以任意的发和收,但是实际上双方必须配合:client发的时候server就收,而server发的时候client就收(2)必须了解到的一点:client和server之间的通信是异步的,这就是问题的根源(3)解决方案:依靠应用层协议来解决。说白了就是我们server和client事先做好一系列的通信约定 ...原创 2018-11-20 16:04:03 · 239 阅读 · 0 评论 -
Linux网络编程入门 (转载)
https://www.cnblogs.com/duzouzhe/archive/2009/06/19/1506699.html#3448454(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端 在网络程序中,如果一个程...转载 2018-10-15 16:10:31 · 174 阅读 · 0 评论 -
套接字socket---网络套接字
套接字socket---网络套接字 网络套接字采用回路网络连接到一个网络套接字 回路网路只包含一台计算机,通常称为localhost,IP地址为127.0.0.1,可以在/etc/hosts文件中找到 例子:客户端发一个A给服务器,服务器收到A,加1改成B,返回给客户端,客户端显示收到的字符server1.c#include <sys/types.h>...原创 2018-10-15 14:47:20 · 316 阅读 · 0 评论 -
套接字socket---接口函数
套接字socket---接口函数 创建套接字socket系统调用创建一个套接字,并返回一个描述符,该描述符可以用来访问这个套接字。创建的套接字是一条通信链路的一个端点。#include <sys/types.h>#include <sys/socket.h>int socket( int domain, int type, int protocol);...原创 2018-10-15 11:02:15 · 478 阅读 · 0 评论 -
朱有鹏 socket实际编程2(6)
朱有鹏 socket实际编程2(6) client.c#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h>//客户端是自动分配端口号#define SERA...原创 2018-11-20 10:30:53 · 216 阅读 · 0 评论