套接字

【网络编程】

你。 提交于 2019-11-27 20:20:06
原文: http://blog.gqylpy.com/gqy/227 " 目录 1.socket层 2.理解socket 3.套接字的发展史 4.网络基础 5.socket基本操作 6.socket进阶 7.黏包 8.解决黏包 8.socket的更多方法 1.socket层 2.理解socket socket是应用层与TCP/IP协议族的中间软件抽象层,它是一组接口。在设计模式中,socket其实就是一个面膜,它把复杂的TCP/IP协议族隐藏在socket接口后面,对于用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。 3.套接字的发展史 套接字起源于20世纪70年代 加利福尼亚 大学伯克利分校版本的Unix,即人们所说的BSD Unix。因此,有时人们也把套接字称为“伯克利套接字”或“BSD套接字”。一开始,套接字被设计用在同一台主机上多个应用程序之间的通讯,这也被称为进程间通讯或IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。 基于文件类型的套接字家族:AF_UNIX unix下一切皆文件,基于文件的套接字调用的就是底层的文件系统来获取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信 基于网络类型的套接字家族:AF_INET 还有AF_INET6被用于ipv6,以及一些其他的地址家族

socket 套接字

隐身守侯 提交于 2019-11-27 13:45:57
socket套接字 ​ socket是处于应用层与传输层之间的抽象层, 他是一组操作起来非常简单的接口(接受数据)此接口接受数据之后交由操作系统 ​ 为什么存在socket抽象层? ​ 如果直接与操作系统数据交互非常麻烦, 繁琐, socket对这些繁琐的操作高度的封装, 简化 ​ socket在python中就是一个模块 基于TCP协议的socket简单通信 客户端(cliend) import socket phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 默认基于TCP协议的socket phone.connect(("127.0.0.1", 8848)) data = input("请输入") phone.send(date.encode("utf-8")) from_server_data = phone.recv(1024) print(f"来自服务端的消息:{from_server_data.decode('utf-8')}") phone.close() 服务端(server) import socket phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 默认基于TCP协议的socket phone.bind(("192.168

【网络编程】 -- 2019-08-16 20:00:55

这一生的挚爱 提交于 2019-11-27 13:40:48
原文: http://blog.gqylpy.com/gqy/227 " 目录 1.socket层 2.理解socket 3.套接字的发展史 4.网络基础 5.socket基本操作 6.socket进阶 7.黏包 8.解决黏包 8.socket的更多方法 1.socket层 2.理解socket socket是应用层与TCP/IP协议族的中间软件抽象层,它是一组接口。在设计模式中,socket其实就是一个面膜,它把复杂的TCP/IP协议族隐藏在socket接口后面,对于用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。 3.套接字的发展史 套接字起源于20世纪70年代 加利福尼亚 大学伯克利分校版本的Unix,即人们所说的BSD Unix。因此,有时人们也把套接字称为“伯克利套接字”或“BSD套接字”。一开始,套接字被设计用在同一台主机上多个应用程序之间的通讯,这也被称为进程间通讯或IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。 基于文件类型的套接字家族:AF_UNIX unix下一切皆文件,基于文件的套接字调用的就是底层的文件系统来获取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信 基于网络类型的套接字家族:AF_INET 还有AF_INET6被用于ipv6,以及一些其他的地址家族

【网络编程】 -- 2019-08-16 19:53:42

大城市里の小女人 提交于 2019-11-27 13:38:43
原文: http://blog.gqylpy.com/gqy/227 " 目录 1.socket层 2.理解socket 3.套接字的发展史 4.网络基础 5.socket基本操作 6.socket进阶 7.黏包 8.解决黏包 8.socket的更多方法 1.socket层 2.理解socket socket是应用层与TCP/IP协议族的中间软件抽象层,它是一组接口。在设计模式中,socket其实就是一个面膜,它把复杂的TCP/IP协议族隐藏在socket接口后面,对于用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。 3.套接字的发展史 套接字起源于20世纪70年代 加利福尼亚 大学伯克利分校版本的Unix,即人们所说的BSD Unix。因此,有时人们也把套接字称为“伯克利套接字”或“BSD套接字”。一开始,套接字被设计用在同一台主机上多个应用程序之间的通讯,这也被称为进程间通讯或IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。 基于文件类型的套接字家族:AF_UNIX unix下一切皆文件,基于文件的套接字调用的就是底层的文件系统来获取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信 基于网络类型的套接字家族:AF_INET 还有AF_INET6被用于ipv6,以及一些其他的地址家族

【网络编程】 -- 2019-08-16 17:36:51

南笙酒味 提交于 2019-11-27 13:20:55
原文: http://blog.gqylpy.com/gqy/227 " 目录 1.socket层 2.理解socket 3.套接字的发展史 4.网络基础 5.socket基本操作 6.socket进阶 7.黏包 8.解决黏包 8.socket的更多方法 1.socket层 2.理解socket socket是应用层与TCP/IP协议族的中间软件抽象层,它是一组接口。在设计模式中,socket其实就是一个面膜,它把复杂的TCP/IP协议族隐藏在socket接口后面,对于用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。 3.套接字的发展史 套接字起源于20世纪70年代 加利福尼亚 大学伯克利分校版本的Unix,即人们所说的BSD Unix。因此,有时人们也把套接字称为“伯克利套接字”或“BSD套接字”。一开始,套接字被设计用在同一台主机上多个应用程序之间的通讯,这也被称为进程间通讯或IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。 基于文件类型的套接字家族:AF_UNIX unix下一切皆文件,基于文件的套接字调用的就是底层的文件系统来获取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信 基于网络类型的套接字家族:AF_INET 还有AF_INET6被用于ipv6,以及一些其他的地址家族

java基础篇笔记21

徘徊边缘 提交于 2019-11-27 13:08:52
软件结构 : C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。 网络编程,就是在一定的协议下,实现两台计算机的通信的程序。 网络通信协议 网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就 好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式、传输速率、传输步骤等做了 统一规定,通信双方必须同时遵守,最终完成数据交换。 TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是 Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己的需求。 协议分类 UDP:用户数据报协议(User Datagram Protocol)。UDP协议是一个面向无连接的协议。传输数据时,不需要建立连接,不管对方端服务是否启动,直接将数据、数据源和目的地都封装在数据包中,直接发送

Socket中数据的传输和 accept()、 connect()等函数的理解

谁都会走 提交于 2019-11-27 12:36:36
以下内容纯属个人理解,请大神勿喷,还请大神在评论区指教,谢谢 server.cpp #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> #include <netinet/in.h> int main(){ //创建套接字 int serv_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //将套接字和IP、端口绑定 struct sockaddr_in serv_addr; memset(&serv_addr, 0, sizeof(serv_addr)); //每个字节都用0填充 serv_addr.sin_family = AF_INET; //使用IPv4地址 serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //具体的IP地址 serv_addr.sin_port = htons(1234); //端口 bind(serv_sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); //进入监听状态,等待用户发起请求

Socket与http的区别

╄→尐↘猪︶ㄣ 提交于 2019-11-27 12:04:28
iOS开发网络篇—Socket编程 字数3235 阅读1232 评论2 喜欢6 转自http://www.mamicode.com/info-detail-877996.html 一、网络各个协议:TCP/IP、SOCKET、HTTP等 网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象; 传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。 http协议对应于应用层 tcp协议对应于传输层 ip协议对应于网络层 三者本质上没有可比性。 何况HTTP协议是基于TCP连接的。 TCP/IP是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协议,主要解决如何包装数据。 我 们在传输数据时,可以只使用传输层(TCP/IP),但是那样的话,由于没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用应用层 协议,应用层协议很多,有HTTP、FTP、TELNET等等,也可以自己定义应用层协议。WEB使用HTTP作传输层协议,以封装HTTP文本信息,然 后使用TCP/IP做传输层协议将它发送到网络上。Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

windows socket错误码及出错原因

一笑奈何 提交于 2019-11-27 11:37:29
Windows Sockets在头文件winsock.h中定义了所有的错误码,它们包括以“WSA”打头的Windows Sockets实现返回的错误码和Berkeley Sockets定义的错误码全集。定义Berkeley Sockets错误码是为了确保原有软件的可移植性。 A.1 Windows Sockets错误码列表 表A.1列出了WSAGetLastError()函数返回的可能错误码和它们的解释,它们可分为四个部分。 错误码的第一部分是用来解决在不同的C编译中对标准C错误码的不一致的定义。错误码的第二部分是标准Berkeley Sockets错误码的Windows Sockets版本。错误码的第三部分包括特定Windows Sockets扩充的错误码。错误码的第四部分由Windows Sockets的getXbyY()和WSAAsyncGetXByY()函数返回,相当于Berkeley软件中由变量h_errno返回的错误(事实上,Windows Sockets在头文件winsock.h中已将h_error定义成其值为WSAGetLastError()的一个宏),它们相当于由域名服务(Domain Name Service)返回的各种失败。如果Windows Sockets实现没有使用域名服务,它将使用最合适的代码。一般地,Windows

网络编程—SOCKET开发

倖福魔咒の 提交于 2019-11-27 10:33:18
一、计算机与网络基础知识   1.1、计算机基础知识     应用软件对硬件的操作必须调用操作系统的接口,由操作系统操控硬件     客户端软件想要基于网络发送一条消息给服务端软件的流程:       1、客户端软件产生数据,存放于客户端软件的内存中,然后调用接口将自己内存中的数据发送或拷贝给操作系统内存。       2、操作系统收到数据后,按照客户端软件指定的规则(协议),调用网卡发送数据。       3、网络传输数据。       4、服务端软件调用系统接口,给操作系统发送将数据从操作系统内存拷贝到自己内存中的指令。       5、服务端操作系统收到 4 的指令后,使用与客户端相同的规则(协议),从网卡接收到数据,拷贝给服务端软件。   1.2、什么是网络     网络 = 物理链接介质 + 互联网协议     互联网协议分为 OSI 七层或 TCP/IP 五层 协议      二、TCP / IP 各层详解   2.1、物理层     功能:基于电器特性发送高低电压(电信号),高电压对应数字 1,低电压对应数字 0。   2.2、数据链路层     功能:单纯的电信号 0 和 1 没有任何意义,因此定义了电信号的分组方式,即以太网协议。     2.1.1、以太网协议( ethernet )       1、规定一组电信号构成一个数据包,叫做 ‘帧’。每一帧包含 ‘报头