首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏有趣的django

    10.socket网络编程

    True: 7 conn, addr = server.accept() #阻塞 等待连接 8 print("new conn:",addr) 9 while True: 10 cmd.encode("utf-8")) #发送命令给server端 9 cmd_res_size = client.recv(1024) #接受server端发过来的命令结果信息长度 10 6 while True: 7 conn, addr = server.accept() 8 print("new conn:",addr) 9 while True: 10 6 while True: 7 conn, addr = server.accept() 8 print("new conn:",addr) 9 while True: 10 7 cmd = input(">>:").strip() 8 if len(cmd) == 0: continue 9 if cmd.startswith("get"): 10

    1.3K70发布于 2018-04-11
  • 来自专栏从零开始学 Web 前端

    10 - JavaSE之网络编程

    网络编程 网络通信协议分层思想 为什么要分层呢? ---- 参考模型 OSI七层模型 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 TCP/IP参考模型 应用层、传输层(TCP/UDP层)、网络层(IP层)、数据链路层、物理层 我们今天要讲的主要是传输层 在TCP/IP协议中,IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一确定Internet上的一台主机。 而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。 可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽。因此TCP传输的效率不如UDP高。

    63040发布于 2018-08-31
  • 来自专栏林德熙的博客

    win10 uwp 网络编程

    上面传输的头,Head=Head+length 中的第二个Head,包含 传输者id,当前传输是传输的消息最后一段还是中间,当前传输 是服务器第消息

    77510编辑于 2022-08-09
  • 来自专栏小工匠聊架构

    高性能网络编程 - The C10M problem

    Pre 高性能网络编程 - The C10K problem 以及 网络编程技术角度的解决思路 概述 在接下来的10年里,因为IPv6协议下每个服务器的潜在连接数都是数以百万级的,单机服务器处理数百万的并发连接 (甚至千万)并非不可能,但我们需要重新审视目前主流OS针对网络编程这一块的具体技术实现 实现C10M(单机千万级并发连接处理能力)确实是一个挑战,但在过去的几年中,有人采用一些创新的方法来应对这一挑战。 这种方法可能需要深入研究和专业知识,但它代表了一种创新的思考方式,旨在解决高性能网络编程的挑战。 回顾C10K 在解决C10K问题时,传统的网络编程模型,如Apache,存在一些明显的限制,这些限制影响了服务器的性能和可扩展性。 总之,传统的网络编程模型,如Apache,在面对大规模并发连接时存在明显的性能和可扩展性限制,而采用事件驱动服务器模型和优化内核等方法可以改善这些问题。

    74230编辑于 2023-11-10
  • 来自专栏小工匠聊架构

    高性能网络编程 - The C10K problem 以及 网络编程技术角度的解决思路

    C10K 英文地址: http://www.kegel.com/c10k.html 中文地址: https://www.oschina.net/translate/c10k C10K是指单机1万网络并发连接和数据处理能力 C10M是指单机1000万网络并发连接和数据处理能力 C10K的由来 众所周知,互联网的基础是网络通信,早期的互联网规模有限,只涉及小规模用户群体。 鉴于上述情况,如何突破单机性能的限制成为高性能网络编程不得不面对的问题。这些限制和问题最早由Dan Kegel总结和归纳,他首次系统地分析并提出了解决方案。 后来,这些普遍存在的网络现象和技术限制都被广泛称为C10K问题。 C10K解决思路 要解决这一问题,从纯网络编程技术角度看,主要思路有两个: 对于每个连接处理分配一个独立的进程/线程 用同一进程/线程来同时处理若干连接 思路一:每个进程/线程处理一个连接 这一思路最为直接

    77550编辑于 2023-11-09
  • 来自专栏changxin7

    3.网络编程 网络编程

    还有一些其他的地址家族,不过,他们要么是只用于某个平台,要么就是已经被废弃,或者是很少被使用,或者是根本没有实现,所有地址家族中,AF_INET是使用最广泛的一个,python支持很多种地址家族,但是由于我们只关心网络编程 与客户端建立连接, 拨号 # 1 制定file_info file_info = { 'file_path': r'D:\lnh.python\pyproject\PythonReview\网络编程 len(every_data) phone.send(every_data) phone.close() client端 FTP上传下载文件的代码(升级版)(注:咱们学完网络编程就留 网络编程的作业   好了同学们,到了这儿,我们的网络编程socket就讲完了,大致就是这些内容,给大家留个作业:(你的努力的成果你自己是看的到的~!)    删除文件和空文件夹 10. 充分使用面向对象知识 11.

    3.1K21发布于 2019-08-20
  • 来自专栏程序编程之旅

    JavaScript---网络编程(10)--DHTML技术演示(3)-多选框

    这节讲述多选框的使用,当然,肯定是结合css和Javascript一起的。 checkbox的使用1: 演示代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>DHTML技术演示---checkbox的使用1</title> <script type="text/javascript"> //html中

    1.5K10发布于 2021-01-21
  • 来自专栏我的博客

    【Linux网络】Socket编程:TCP网络编程

    在前面的文章中,我们使用了UDP进行网络编程,这篇文章我们就来使用另一个TCP进行网络编程,我们知道UDP和TCP都是传输层协议,但是特点不同,前者无连接,不可靠传输,面向数据报,后者有连接,可靠传输 大体框架 1.1 补充 首先,在之前的UDP网络编程中,我们是直接使用的硬编码,例如退出码直接就设为1、2、3等,显然这并不是一个很好的选择,那么这里我们可以统一设计一个服务器的退出码,就像之前设计日志等级一样 (网卡)发来的连接我们都愿意接受,所以我们地址结构中的成员 sin_addr 需要设置为 INADDR_ANY,也就是IP地址此时为0,这在UDP网络编程时我们已经详细介绍了原因,这意味着我们服务端在使用 直接向目标服务器发起建立连接的请求 return 0; } 我们这里也不需要显式bind,关于原因我们在udp网络编程时已经说明了,那我们应该做什么呢? ,上层服务我们可以和UDP网络编程一样,直接在服务端主程序调用其他的服务,就比如之前实现的翻译和路由转发,然后在服务端接收数据时,将数据回调处理,最后将结果写回客户端。

    44210编辑于 2025-12-22
  • 来自专栏Coding Diary

    Java网络编程 -- AIO异步网络编程

    AIO中的A即Asynchronous,AIO即异步IO。它是异步非阻塞的,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理,一般我们的业务处理逻辑会变成一个回调函数,等待IO操作完成后,由系统自动触发。

    1.4K20发布于 2019-09-25
  • 来自专栏科学计算

    10 元编程

    元编程 什么是元编程 维基百科上的解释为: 元编程(英语:Metaprogramming),又译超编程,是指某类计算机程序的编写,这类计算机程序编写或者操纵其它程序(或者自身)作为它们的资料,或者在运行时完成部分本应在编译时完成的工作 知乎上有一个关于元编程的解释是比较直观的。 泛泛来说,只要是与编程相关的编程就算是 meta-programming 了——比如,若编程甲可以输出 A - Z,那么写程序甲算「编程」;而程序乙可以生成程序甲(也许还会连带着运行它输出 A - Z) 那我们看看Julia中的元编程到底是什么及如何应用? val end end @tid map(x->x^2, 1:10000) @which @which 1+2 @which sleep(2) @show x = rand(10

    1.3K20发布于 2020-06-30
  • 来自专栏抠抠空间

    网络编程

    三.网络基础 网络基础 1.一个程序如何在网络上找到另一个程序? 首先,程序必须要启动,其次,必须有这台机器的地址,我们都知道我们人的地址大概就是国家\省\市\区\街道\楼\门牌号这样字。 那么每一台联网的机器在网络上也有自己的地址,它的地址是怎么表示的呢? 套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。  还有一些其他的地址家族,不过,他们要么是只用于某个平台,要么就是已经被废弃,或者是很少被使用,或者是根本没有实现,所有地址家族中,AF_INET是使用最广泛的一个,python支持很多种地址家族,但是由于我们只关心网络编程 ) data2=conn.recv(10) print('----->',data1.decode('utf-8')) print('----->',data2.decode('utf-8')) conn.close

    1.9K60发布于 2018-04-12
  • 来自专栏李才哥

    网络编程

    网络编程.png 网络编程 构建TCP 服务 创建 TCP 服务器 TCP全名为传输控制协议,在OSI模型(由七层组成,分别为物理层、数据链结层、网络层、 传输层、会话层、表示层、应用层)中属于传输层协议 Nagle算法 要求缓冲区的数据达到一定数量或者一定时间后才将其发出 构建UDP服务 UDP 在 UDP 中,一个套接字可以与多个 UDP 服务通信 UDP 又称用户数据包协议,与 TCP 一样同属于网络传输层 无须连接,资源消耗低,处理快速且灵活 若想让UDP套接字接收网络消息,只要调用dgram.bind(port, [address])方法对网卡和端口 进行绑定即可 UDP 是一个EventEmitter 客户端事件,response,socket,connect,upgrade,protocols,continue 构建 WebSocket 服务 WebSocket WebSocket客户端基于事件的编程模型与 SSL作为一种安全协议,它在传输层提供对网络连接加密的功能 Node在网络安全模块 crypto · 主要用于加 密解密,SHA1、MD5等加密算法都在其中有体现, tls · TLS/SSL是一个公钥

    1.1K20发布于 2021-03-02
  • 来自专栏程序猿的大杂烩

    网络编程

    什么是网络: 现如今网络的普及性已经非常的高了,大部分人也都非常熟悉网络,基本上也是天天离不开网络,比如逛逛微信朋友,聊聊qq撩撩妹,上个淘宝剁个手什么的。 然后网络逐渐的发展至今,并且个人计算机的网络硬件都已经非常的小巧发达,在十年前网卡还只能是独立式的,那时候还可以利用电话线拨号上网,现在网卡基本都集成在电脑主板上了,一般现在用独立网卡的都是为了性能和网络的连接速度 以前的网络示意图: ? 现在的网络分为广域网、城域网、局域网,广域网就是国家骨干网,是最核心的网络。也是最先进的网络,连接着海底光缆,网络运营公司和一些国企是从骨干网里分享的网络。 城域网就是一些运营商架构在城镇之间的网络,能够在城镇范围互相连接。局域网则是个人庭或个人公司、超市等,通过路由器所形成的小型网络叫局域网。 示意图: ?   在操作系统中网络处理最好的系统是Unix和Linux操作系统,因为TCP/IP协议是固化在Linux内核里面的,网络处理性能要强于windows操作系统,所以服务器基本都是使用的Unix/Linux操作系统

    1.1K20发布于 2020-09-23
  • 来自专栏Java 学习日记

    网络编程

    1 网络概念 1.1 网络通信三要素 IP地址:唯一标识网络上的每一台计算机。 通信协议:通信的规则 TCP,UDP 1.2 网络通信模型 ? catch (UnknownHostException e) { 15 e.printStackTrace(); 16 } 17 } 18 } 3 TCP 编程 TCP编程中,如果要完成通信,通信双方必须要创建 socket,通过 socket 完成通信。 4 UDP 编程 UDP 编程中,如果要完成通信,通信双方必须要创建 DatagramSocket,通过 DatagramSo-cket 完成通信。

    96420发布于 2019-08-19
  • 来自专栏xiaozhangStu

    网络编程

    网络编程 什么是ip地址 互联网协议特有的一种地址 由4段8位的二进制组成的,因为读写不方便所一转换成了10进制,取值范围是1-255 输入域名---域名解析服务器(dns)解析域名成ip地址---访问 ip地址---根据绑定域名找到目录---达到访问目的地 什么是网络地址 标识计算机或者网络设备所在的网段 什么是主机地址 标识特定主机或者网络的设备 ip分类 分类 网络地址数量 主机地址数量 前8位的取值范围 作用 子网掩码 A 1 3 1-126 大量主机而局域网络数量较少的大型网络 255.0.0.0 B 2 2 128-191 国际性大公司和政府机构 255.255.0.0 C 3 1 192-223 ,比如网线 底层网络协议 数据链路层 物理网络上接受到的帧 底层网络协议 网络层 路由选择 ip 传输层 端口对端口 tcp可靠无差错的连接、数据安全 udp传输的快 应用层 应用服务元素(SASE)和一个或多个公用应用服务元素 (CASE) HTTP FTP Socket 简介 传输层进行端到端的通信 连接的端点就叫做socket(套接字)ip地址+端口号 基于TCP协议的Socket编程 用到的类 java.net包 Socket

    1.1K30编辑于 2023-05-04
  • 来自专栏南桥谈编程

    【Linux网络编程】网络基础 | Socket 编程基础

    理解TCP/IP协议: OS 源代码一般都是用 C/C++语言写的 主机 B 能识别 data, 并且准确提取 a=10, b=20, c=30 吗? 之前我们在学习系统编程的时候知道访问公共资源就是临界资源,那么这里的局域网就是一个临界资源(以太网中, 任何时刻, 只允许一台机器向网络中发送数据)。 : IP 网络层存在的意义: 提供网络虚拟层, 让世界的所有网络都是 IP 网络, 屏蔽 最底层网络的差异 Socket 编程预备 理解源 IP 地址和目的 IP 地址 IP在网络中是用来标识主机的唯一性 sockadder结构 socket API 是一层抽象的网络编程接口,适用于各种底层网络协议,如 IPv4、 IPv6,以及 后面要讲的 UNIX Domain Socket. 关于Socket套接字编程后续文章会详细讲解。

    74710编辑于 2024-10-14
  • 来自专栏Coding Diary

    Java网络编程--NIO非阻塞网络编程

    从Java1.4开始,为了替代Java IO和网络相关的API,提高程序的运行速度,Java提供了新的IO操作非阻塞的API即Java NIO。 SocketChannel SocketChannel用于建立TCP网络连接,类似java.net.Socket。 实现单个线程可以管理多个通道,从而管理多个网络连接。 处理连接的逻辑 } if (key.isReadable()) { //处理读数据的逻辑 } iterator.remove(); } } NIO网络编程完整代码 Tomcat8中已经完全移除了BIO相关的网络处理代码,默认采用NIO进行网络处理。

    1.3K20发布于 2019-09-25
  • 来自专栏全志嵌入式那些事

    百问FB网络编程 - 网络编程简介

    6.1 网络编程简介 ​ 要编写通过计算机网络通信的程序,首先要确定这些程序同通信的协议(protocol),在设计一个协议的细节之前,首先要分清程序是由哪个程序发起以及响应何时产生。 ​ 6.1.1 五层因特网协议栈 ​ 为了给网络协议的设计提供一个结构,网络设计者以分层(layer)的方式组织协议以及实现这些协议的网络硬件和软件。 分层提供了一种结构化方式来讨论系统组件。 网络层:因特网呃网络层负责将称为数据包(datagram)的网络层分组从一台主机移动到另一台主机。 链路层:因特网的网络层通过源和目的地之间的一系列路由器路由数据报。 6.1.2 传输层和应用层的常见协议 ​ 我们重点介绍和应用层编程关系密切的应用层和运输层。 ​ 应用层: ​ 因特网的应用层包含很多协议,例如HTTP,SMTP,和 FTP。 6.2 网络编程之TCP/UDP比较 6.2.1 TCP和UDP 原理上的区别 ​ TCP向它的应用程序提供了面向连接的服务。

    45010编辑于 2024-12-05
  • 来自专栏Coding Diary

    Java网络编程--BIO阻塞式网络编程

    BIO网络编程 首先我们来看一段最基础的Java网络编程代码示例: 服务器端代码示例: public class BIOServerV1 { public static void main(String BIO网络编程处理浏览器请求 在了解了HTTP协议的内容之后我们就可以依据HTTP协议的内容编写程序来处理浏览器请求。 request.close(); } catch (IOException e) { e.printStackTrace(); } } }); } serverSocket.close(); } } 以上就是Java BIO网络编程的基本内容 ,对于BIO来说一个请求对应一个线程,上下文切换占用的资源很重,同时由于大量并发情况下,其他接入的消息,只能一直等待,而目前对于性能,响应速度等的却要求越老越高,BIO网络编程使用的已经越来越少。 使用的比较多的是Java NIO网络编程,该部分内容我们将在下一部分继续。

    1.4K30发布于 2019-09-25
  • 来自专栏我的博客

    【Linux网络】Socket编程:UDP网络编程实现ChatServer

    上篇文章我们实现了英译汉的网络字典,客服端向服务端发送英文,服务端接收数据后回调处理,将翻译后的中文再转发给客户端,这其实和EchoSever一样都是一对一的网络通信。 我们也可以实现多个客户端之间进行网络通信,通过服务端将一个客户端发送的消息转发给所有客户端,这样大家都能够看到你发的消息,以此来达到一个简易聊天室的效果。 port = std::stoi(argv[1]); Enable_Console_Log_Strategy(); // 路由服务 Route route; // 网络服务器对象提供网络通信功能 // 路由服务 Route route; // 线程池 auto tp = ThreadPool<task_t>::GetInstance(); // 网络服务器对象提供网络通信功能 这个函数由调用者提供一个缓冲区保存结果,可以规避线程安全问题; 6.2 inet_ntop - 二进制到字符串转换 功能 将网络字节序的二进制 IP 地址转换为点分十进制字符串格式。

    36710编辑于 2025-12-22
领券