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. new和delete必须成对出现吗?【网上集合贴+个人总结】

    new和delete必须成对出现吗?[网上集合贴+个人总结] 1.从内存泄露与否的角度考虑 new 和 delete不一定要成对出現.理论上是這樣的.但是从习惯上來說,new delete成對出現是一 ...

  2. QML被系统缓存的原理是比较时间戳

    Gunnar Roth January 25, 2017 at 17:07 Afaik the cached qml file contains a checksum of the original ...

  3. MISP版本嵌入式QT编译时出现mips-linux-gcc command not found

    configure的时候都没什么问题我的configure是:./configure -prefix /opt/qt-jz -xplatform qws/linux-mips-g++ -embedde ...

  4. Vista之前的版本,默认本地登陆用户都以管理员权限启动程序

    Vista之前的版本,默认本地登陆用户都以管理员权限启动程序,之后的OS版本默认都没有管理员权限,需要用户提权才能做某些操作,否则需要管理员权限的操作都会失败MSSQL是用户名账号连接,Socket方 ...

  5. 原创powershell脚本:通过远程桌面3389黑名单,阻止黑客ip

    远程桌面 3389 ban ip 防火墙 rdp   通过远程桌面3389黑名单,阻止黑客ip.这是一个常见的需求.但我搜遍了谷歌也找不到成品脚本.想做搬运工却做不成,只能自己费尽写.下载备用吧,估计 ...

  6. java关键字-interface

    1:是用关键字interface定义的. 2:接口中包含的成员,最常见的有全局常量.抽象方法. 注意:接口中的成员都有固定的修饰符. 成员变量:public static final 成员方法:pub ...

  7. Spark之从hdfs读取数据

    /user/hive/warehouse/ycapp.db/appindex") ), e(),e().toInt)) (String, String, String) ,,all_post ...

  8. kubernetes之使用http rest api访问集群

    系列目录 在Kubernetes集群中,API Server是集群管理API的入口,由运行在Master节点上的一个名为kube-apiserver的进程提供的服务. 用户进入API可以通过kubec ...

  9. 用JavaScript刷LeetCode的正确姿势

    虽然很多人都觉得前端算法弱,但其实 JavaScript 也可以刷题啊!最近两个月断断续续刷完了 leetcode 前 200 的 middle + hard ,总结了一些刷题常用的模板代码.走过路过 ...

  10. Spring Boot的学习之路(03):基础环境搭建,做好学习前的准备工作

    1. 前言 <论语·魏灵公>:"工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者." 工欲善其事必先利其器.我们在熟悉一个陌生项目的时候,首先会大概去看一 ...