1.Linux网络模型

Linux网络编程--->>>socket套接字的编程

2.TCP网络模型                                                    UDP网络模型

在创建套接字后,服务器与客户端都得初始化网络地址

3.网络编程

服务器端:

//1.1创建socket
if((sockfd = socket(AF_INET, SOCK_STREAM, ))<0) //IPv4,用于TCP通信
{perror("socket error!");exit(-1);} //确保连接稳定性
//1.2绑定地址
/*初始化地址*/
bzero(&server_addr,sizeof(struct sockaddr_in));//清零
server_addr.sin_family = AF_INET;//协议族
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
//跟随网络传输 sin_addr中的成员s_addr 任意ip地址 字节序转换 主机转换为网络字节序
server_addr.sin_port = htons(port);//端口,跟随网络传输
/*绑定地址*/
if(bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))<0);
//要绑定的地址 地址长度
{perror("bind error!");exit(-1);} //确保连接稳定性
//1.3监听端口
if(listen(sockfd,)<0); //客户机数目
{perror("listen error!");exit(-1);}
//1.4等待连接
while()
{ new_fd = accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size);
//client_addr保存客户端地址 长度的指针
//2.响应客户端请求
while() //接收和发送数据 fd与new_fd之间的调序使用
{
read(~)=recv(~,0) 读/接收数据
write(~)=send(~,0) 写/发送数据
//read(new_fd,&cmd,1); //读取操作类型码
//write(~~)
}
close(sockfd);
}

客户端:    实际编程过程中确保稳定连接,配上故障信息

//1.创建socket
sockfd = socket(AF_INET, SOCK_STREAM, ); //IPv4,用于TCP通信
/*2.1 初始化地址*/
memset(&sockaddr1,,sizeof(sockaddr1));//清零
sockaddr1.sin_family = AF_INET;//协议族
sockaddr1.sin_addr.s_addr = inet_addr(ipaddr);// 跟随网络传输 sin_addr中的成员s_addr inet_addr:将字符串ip地址转换为整数型ip地址
sockaddr1.sin_port = htons(port);//端口,跟随网络传输,字节序转换 主机转换为网络字节序
//2.连接服务器
connect(sockfd,(struct sockaddr *)&sockaddr1,sizeof(sockaddr1));
//3.发送或接收数据
while()
{
command = getchar(); //等待用户输入字符
switch(command)
{.发送-.接收-.退出-quit()}
}
//4.关闭连接
close(sockfd);

网络编程模型及TCP、UDP编程设计的更多相关文章

  1. (1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型

    1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将 ...

  2. (1)基于tcp协议的编程模型 (2)tcp协议和udp协议的比较 (3)基于udp协议的编程模型 (4)反射机制

    1.基于tcp协议的编程模型(重中之重)1.1 编程模型服务器: (1)创建ServerSocket类型的对象,并提供端口号: (2)等待客户端的连接请求,调用accept()方法: (3)使用输入输 ...

  3. TCP/UDP编程步骤和区别

    一. 概念解析 套接字:一种特殊的文件描述符.一头指向套接字地址(用户),一头指向套接字结构(内核). 套接字结构:由内核维持的一种数据结构,可通过套接字来操作. 套接字地址:ip和port. 二. ...

  4. 【深入浅出Linux网络编程】 “实践 -- TCP & UDP”

    通过上一篇博客的学习,你应该对基于epoll的事件触发机制有所掌握,并且通过阅读sio.c/sio.h应该也学会了如何封装epoll以及如何通过设计令epoll更加实用(用户回调,用户参数). 简单回 ...

  5. UC编程之网络通信(TCP/UDP)

    网络常识 OSI 7层模型(人机交互) 物理层.数据链路层.网络层.传输层.会话层.表现层.应用层 常见协议: tcp/udp/ip/ftp/http... IP地址--就是计算机在网络中的地址,是一 ...

  6. 62 网络编程(三)——UDP编程

    UDP编程标准步骤 服务器端 使用DatagramSocket创建服务端:DatagramSocket server = new DatagramSocket(port);//参数为自定义端口号 准备 ...

  7. Spark入门实战系列--3.Spark编程模型(上)--编程模型及SparkShell实战

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark编程模型 1.1 术语定义 l应用程序(Application): 基于Spar ...

  8. linux tcp/ip编程和windows tcp/ip编程差别以及windows socket编程详解

    最近要涉及对接现有应用visual c++开发的tcp客户端,花时间了解了下windows下tcp开发和linux的差别,从开发的角度而言,最大的差别是头文件(早期为了推广尽可能兼容,后面越来越扩展, ...

  9. 异常处理与网络基础中的tcp,udp协议

    # 异常处理: # 什么是异常?异常和错误的区别 # Error 语法错误 比较明显的错误 在编译代码阶段就能检测出来 # Iteration 异常 在执行代码的过程中引发的异常 # 异常发生之后的效 ...

  10. C# TCP应用编程三 异步TCP应用编程

    利用TcpListener和TcpClient类在同步方式下接收.发送数据以及监听客户端连接时,在操作没有完成之前一直处于阻塞状态,这对于接受.发送数据量不大的情况或者操作勇士较短的情况下是比较方便的 ...

随机推荐

  1. Excel的Range对象(C#)

    原文:Excel的Range对象(C#) Range 对象是 Excel 应用程序中最经常使用的对象:在操作 Excel 内的任何区域之前,都需要将其表示为一个 Range 对象,然后使用该 Rang ...

  2. matplotlib简介

    python的matplotlib包可以帮助我们绘制丰富的图表,有助于我们的数据分析. matplotlib官方文档:matplotlib 本博客所有代码默认导入matplotlib.pyplot和n ...

  3. Qt 下快速读写Excel指南(尘中远)

    Qt Windows 下快速读写Excel指南 很多人搜如何读写excel都会看到用QAxObject来进行操作,很多人试了之后都会发现一个问题,就是慢,非常缓慢!因此很多人得出结论是QAxObjec ...

  4. TApplicationEvents的前世今生(待续)

    这是它的声明,它的数据成员全部都是Event,而没有真正意义上的数据(如此一来,几乎可以猜测,它本身什么都做不了): TCustomApplicationEvents = class(TCompone ...

  5. 记录一次PHP项目报502的问题

    问题描述 最近有台服务器偶尔会报502错误,虽然量不多,每天就几十个,但是也必须得找到原因,避免让小问题变成大问题. 排查过程 502错误的原因,一般是对用户访问请求的响应超时造成的,一开始以为是请求 ...

  6. 11g Oracle导出表 默认不导出数据为空的表解决

    11g oracle导出表时会默认不导出数据为空 1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出.  2.设置deferred_segm ...

  7. sql小计汇总 rollup用法实例分析

    这里介绍sql server2005里面的一个使用实例: ),city ),score int) GO 1. 只有一个汇总 select province as 省,sum(score) as 分数 ...

  8. es6基本语法,vue基本语法

    一.es6基本语法 0.es6参考网站 http://es6.ruanyifeng.com/#README 1.let 和 const (1)const特点: 只在局部作用域起作用 不存在变量提升 不 ...

  9. SYN5605型 多通道时间间隔测量仪

      SYN5605型 多通道时间间隔测量仪 时间间隔测量设备多通道时间间隔测量32路时间间隔测量仪使用说明视频链接; http://www.syn029.com/h-pd-80-0_310_6_-1. ...

  10. ZooKeeper学习第四期---构建ZooKeeper应用(转)

    转载来源:https://www.cnblogs.com/sunddenly/p/4064992.html 一.配置服务 配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那 ...