socket编程问题求大神指点下 20C

socket编程中应用层的协议用的是什么啊?socket和severSocket通信时应该用到了某一种应用层协议吧?我只知道传输层可以指定使用TCP协议。

0

14个回答

用什么协议要看client和server之间的约定,没有约定就是透传。
常见的情况,http、websocket、mqtt等使用的较多。
如果没太大需求,透传也没啥问题。

1

最简单的网络模型如下:


图片说明

在Socket编程中通常会打开一个Socket套接字,如:
//四层协议是TCP,三层协议是IP
int fd = socket(AF_INET, SOCK_STREAM, 0)
//四层协议是UDP,三层协议是IP
int fd = socket(AF_INET, SOCK_DGRAM, 0)
//四层协议是TCP,三层协议是IPV6
int fd = socket(AF_INET6, SOCK_STREAM, 0)

通过不同的打开方式能够得到按不同协议传输的套接字,那么到应用层,如下是一个HTTP协议的例子:

//应用层协议http, 4层tcp, 3层ip
char *http_content = "GET / HTTP 1.1\r\nHOST: www.csdn.com\r\n\r\n";
int fd = socket(AF_INET, SOCK_STREAM, 0);
send(fd, http_content, strlen(http_content));

那么换成FTP协议怎么样?

//应用层协议ftp, 4层tcp, 3层ip
char *ftp_content = “LIST /\r\n”
int fd = socket(AF_INET, SOCK_STREAM, 0);
send(fd, http_content, strlen(ftp_content));

如果你这样写:

//应用层协议不知道, 4层tcp, 3层ip
char *unkonwn_content = “1234567”
int fd = socket(AF_INET, SOCK_STREAM, 0);
send(fd, http_content, strlen(unkonwn_content));

因此单从内容的角度的话我们层符合相应协议规范的内容我们将其数据称为相应的协议,而在应用中,应用层协议到底应该是什么样的则由服务器说了算,如果你向一个FTP服务器发送按HTTP协议封装的数据,那FTP服务器肯定不会认识,它会认为你发的是错误的消息,直接丢弃。而如果你只是简单的写了一个Socket通信的例子,应用层没有按任何协议定义进行封装,那你的消息就没有任何协议,如果你按特定的协议规范封装了,你也可以说你的应用层协议是相应协议。

1

tcp协议用于传输控制协议,具体通信层面需要根据自己的业务来解析字节流,比如tomcat就是实现了HTTP协议,根据hTTP规矩来解析数据

0

android中,socket封装了Tcp/Ip与Udp通信协议,.Net的话Udp通信有UdpClient类,Socket用与Tcp协议

0

socket编程就是用的tcp和udp协议呀,应用层协议常见的http,ftp这些是基于tcp或者udp的

0

假如我们要做一个C/S型的程序设计,服务端和客户端使用TCP通信,这时就需要在TCP协议之上,选择一个合适的应用层协议,如果不喜欢已有的协议,那就需要自己去实现一个协议规程,现在我们就要去完成一个图1所示的协议
1.定义传输的消息格式
2.实现服务器
3.实现通信协议
3.实现客户端

0

应用层协议基于TCP或者UDP

0

原则上,你的端口号对应的就是应用层协议,比如80就是http,21就是ftp,22就是ssh,23就是telnet等等。
但是由于端口号是可以随便修改的,所以上面的说法是错的,具体的协议要看你想用什么了,你就是自己定义一套都可以。
如果你自己定义一套,那你就得定义边界,你还得自己写解析,封装等等。所以一般的开发,为什么不用现成的协议呢?

0

用UDP协会野可以啊

0

看约定呢,server和client自己约定,自己选

0
共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
(地主源代码)求解! 做的不够好,求大神指点
(地主源代码)求解! 做的不够好,求大神指点
自制串口调试助手
自制串口调试助手,参照网上的代码资源,可以实现基本功能,求各路大神指点
人事资源管理系统
SSH框架+MySQL做的一个人事管理系统,需要的可以借鉴下,不足之处求大神指点
图书管理系统源码
分享交流请大神指点指点 
MCP42010系列程控电位器
STM32VET6 模拟SPI与MCP42010系列程控电位器通信,设定电位器阻值,硬件形式不知道为什么不行,求大神指点
基于SCOKET的CS聊天工具
做好了不能用 请各位指点,不知道哪里有错误。IP地址不会弄。我的QQ601940219 求大神帮助
易语言钓鱼源码
求大神买走 求大神买走 易语言钓鱼源码
广州数控GSK980TD软件
不错的选择!很好的呀1呵呵!具体的操作 看广州数控
ThreeLayerLib源代码
ThreeLayerLib.dll的源代码,请各位大神多多指点其中存在的问题,不胜感激,再次感谢各位大神对在下的关注和指点!
面试题
求大家指点
classes_dex2jar
求破解 指点classes_dex2jar
huffman压缩文件
初学者写的,huffman压缩文件。求指点,求喷!
socket源代码
socket源代码欢迎大家指点
新手编写TC2.0环境下的俄罗斯方块
新手自己写的俄罗斯方块,求大神指点,方法比较简单,最终效果还不太全面,简单实现了一下,想交流一下的可以留言
MFC五子棋源代码下载
大二学生党,新手不容易啊,只能这样搞点分花花 本暂时只能本地双人对战,人工智能和网络版正在开发中,求大神指点
java装饰者模式做的图片工具类
初学java设计模式,求高手指点,求师父。
程序员面试手册:概念、编程问题及面试题
本书是面向程序员面试的参考书,书中囊括了各种编程解决方案,可以用来有效地应对面试、考试及校园招聘。内容涵盖了编程基础、架构设计、数据库技术、数据结构及算法等主要的话题,而且还介绍了趣味谜题以及非技术的问题。
员工管理系统
自己写的员工管理系统,比较低级,望各位大神多多指点。
局域网组建与维护论文
本人毕业论文,share一下,写的一般,请各位大神指点。
仿微信选择系统相册
适合第一次开发的新手,大神可以指点一下
最大公约数 最小公倍数 C++
最简单的编程问题,求最大公约数和最小公倍数,用 C++ 代码实现
oracle安装卸载和导入导出数据
oracle安装卸载和导入导出数据,方便各位大神指点。
socket通信 未完成
一个使用java的简单的socket通信程序 未完成 希望大神指点
我写的一个url
我写的url,请大神指点,功能有限,献丑了,谢谢
C++primer(5)练习部分答案
C++primer(5)练笔过程,求指点。
MyGame(四方)
4个按钮颜色一样,并且形成矩形= =...斜着的矩形不行,有什么不足的请各位大神指点指点
java socket编程问题
java socket编程,讲解其原理和编程的过程,并有相关的实例。
鸿洋大神的自定义view
简单的自定义控件 鸿洋大神的 学习 测试 凑字数 凑字数
PHP MVC Model类
PHP 网站后台 MVC框架 增删改查 求大神分享 !!!
酒店管理系统开题报告
酒店系统开题报告,属于毕业设计。在一步步学习和设计系统中。求分享,求指点!!!
ThinkPad指点杆(小红点)驱动中文版
thinkpad鼠标驱动也是小红点驱动都是英文版的,对于英文不是太好的设置起来不太方便,这个版本的是汉化了的,全中文界面,解压后安装重启就行
求属性集的属性闭包
求属性集的属性闭包的代码,仅供参考,欢迎指点
LISP实现的符号求导程序
初学lisp,求指点(用递归写的求导程序)
51单片机键盘扫描
初学者,刚刚写完51单片机键盘扫描,拿出来分享,求指点~
3重DES加密 delphi
专业实习 在资料上找的 看不懂 大家分享 求指点
C# winfrom TCP通讯
socket通讯,传输文件,如有更好的建议还望大家指点
mplab icd v8.00
单片机需求烧写些软件 ,求专业人士指点一下
contact[1].html
各位大神,我这里需要3个积分,求大神赐分,在此跪谢。
安卓疯狂讲义里安卓基于socket的通信
安卓基于socket的通信,请高人指点为什么不可以
基于MFC ppi计算器
新手自己写的ppi计算器,开发环境:vs2010 win8.1 ,求指导,求大神指导
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java大神班 大数据大神班