精华内容
下载资源
问答
  • 常见编程语言

    万次阅读 2019-03-16 16:04:39
    编程语言排行榜 TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,只是反映某个编程语言的热门程度,并...

    编程语言排行榜

    TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。
    链接:https://www.tiobe.com/tiobe-index/

    2019年12月排行榜

    在这里插入图片描述

    历年年度编程语言

    在这里插入图片描述

    非主流编程语言介绍

    Go

    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
    2007年,受够了C++煎熬的Google首席软件工程师Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++, 这就是Golang。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发。
    Go 文化的主要支柱是保持简单实用的代码,而不会产生多余的抽象,并且非常重视代码的可维护性。能够把大量时间用在实现业务代码上,而不是用来修改工具和配置环境,这也是文化的一部分。Go 也可以总结为“应该只有一个方法来完成一件事情”。

    GO语言的关键特性主要包括以下几方面:
    语言级别支持协程(微线程)并发,基于消息传递的协程间通信方式
    重度依赖于静态代码分析,包括用于文档的 godoc,用于代码格式化的 gofmt,用于代码风格检查的 golint,以及许多其他的例子。
    丰富实用的内置数据类型
    丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大。
    支持函数多返回值
    Go 提供了一个内置的测试和性能分析框架,旨在简化和高效。
    defer延时处理机制,这种机制非常适合善后逻辑处理
    是强类型的编译型语言,但是提供了Any类型(interface{})和强大的类型反射(reflect)能力,二者相结合,开发的灵活性上已经很接近解析型语言
    在语言级别自带HTTP/TCP/UDP高性能服务器
    有一套标准的工程管理规范
    编程规范强制集成在语言中
    可直接编译成机器码,不依赖其他库;编写的Go代码不包含cgo可以跨平台编译
    内置runtime,支持垃圾回收,不过,还不太完善
    内嵌C支持,Go里面也可以直接包含C代码,利用现有的丰富的C库。

    GO语言的缺点
    Go 语言没有一个主要的框架。
    Go 语言的软件包管理绝对不是完美的。默认情况下,它没有办法制定特定版本的依赖库。

    GO语言适合用途
    服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
    分布式系统,数据库代理器等。
    网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。

    Objective-C

    Objective-C是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OPENSTEP中它更是基本语言。(注:NeXTSTEP和OPENSTEP是基于Unix OS内核,并遵循OpenStep的API规范的操作系统)
    GCC与Clang含Objective-C的编译器,Objective-C可以在GCC以及Clang(编译器)运作的系统上编译。

    Perl

    Perl即“实用报表提取语言”(Practical Extraction and Report Language),是一种具有高级语言(如C)的强大能力和灵活性的解释型语言。
    它借取了C、sed、awk、shell 脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。被称之为“一种拥有各种语言功能的梦幻脚本语言”、“Unix 中的王牌工具”。

    Perl的前身是Unix系统管理的一个工具,被用在无数的小任务里。后逐渐发展成为一种功能强大的程序设计语言,用作Web编程、数据库处理、XML处理以及系统管理;在完成这些工作时,同时仍能处理日常细小工作,这是它的设计初衷。Perl特别适合系统管理和Web编程。
    Perl运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。实际上已经被用在所有Unix(包括Linux)捆绑在一起作为标准部件发布,同时也用于Microsoft Windows和几乎所有操作系统。

    R

    R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
    R是集统计分析与图形显示于一体的。

    它的特点有:
    R是自由软件。
    R是一种可编程的语言。
    所有R的函数和数据集是保存在程序包里面的。
    R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的。
    如果加入R的帮助邮件列表,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地。

    Groovy

    Groovy是一种基于JVM(Java虚拟机)的敏捷的动态语言,也是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。(注:动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的)
    它构建在强大的Java语言之上并添加了从Python,Ruby和Smalltalk等语言中学到的诸多特征,例如动态类型转换、闭包和元编程(metaprogramming)支持。
    它在设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。

    Swift

    Swift是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于编写 iOS 和 macOS 应用。
    Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活。
    Swift在应用开发上比Objective-C具有更新更好的特性,但是不能胜任所有方面,例如底层和Framework的开发。

    Delphi/Object Pascal

    Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。
    Object Pascal指Pascal的面向对象的衍生分支,以Delphi的主要编程语言著称。
    Object Pascal 是一种高级编译语言,具有强类型特性,支持结构化和面向对象编程。它的优点包括代码的易读性、快速编译,以及支持多个单元文件从而实现模块化编程。

    D

    D语言最初由Digital Mars公司就职的Walter Bright于2001年发布,意图改进C++语言,它是一门静态编译型语言。
    D 语言源自C/C++,借鉴了众多编程语言的特色和现代编译器技术,融会贯通了设计者丰富的实践经验,使之具备了非凡的威力--既有 C/C++ 语言的强大威力,又有 Python 和 Ruby 的开发效率,采用了各种野心勃勃的编译器优化技术。

    它集众多系统级编程所需的功能于一身,例如垃圾回收、手工内存操作、多范式编程、契约式设计和内置单元测试、高级模板技术、内嵌汇编、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、内建基本运行时信息。
    D 很适合于编写从中等规模到团队合作完成、数百万行代码规模的各种程序。D不直接兼容 C/C++源代码,但对C API提供了很好的支持,不仅支持所有的 C数据类型,还提供了直接访问 C 函数的能力。

    Rust

    Rust是一门系统编程语言,也是许多区块链底层编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust最初是由Mozilla研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。
    Rust编译器是在MIT License 和 Apache License 2.0双重协议声明下的免费开源软件。

    Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。
    Rust不使用自动垃圾回收系统,而是通过RAII(Resource Acquisition Is Initialization,也称为“资源获取就是初始化”,是C++语言的一种管理资源、避免内存泄漏的惯用法。它保证在任何情况下,使用对象时先构造对象(获取资源),最后析构对象(释放资源)。)来管理内存和资源,还可选引用计数。Rust以低开销提供资源确定性管理。
    标准Rust性能与标准C++性能不相上下。

    LISP

    LISP语言(LISP,List Processing的缩写)是一种早期开发的、具有重大意义的表处理语言。它适用于符号处理、自动推理、硬件描述和超大规模集成电路设计等。
    特点是,使用表结构来表达非数值计算问题,实现技术简单。

    LISP语言不仅在专家系统和CAD领域有广泛的应用,在符号代数、定理证明、机器人规划等领域也有广泛的应用。LISP语言已成为最有影响,使用十分广泛的人工智能语言。

    影响LISP语言使用的主要原因有:一是LISP是非可视化语言;二是LISP在通用计算机上的运行效率较低;三是LISP的数值计算能力较差;四是人们对函数型语言的编程风格不习惯。

    Ada

    Ada是一种表现能力很强的通用程序设计语言,它是美国国防部为克服软件开发危机,耗费巨资,历时近20年研制成功的。它被誉为第四代计算机语言的成功代表。与其他流行的程序设计语言不同,它不仅体现了许多现代软件的开发原理,而且将这些原理付诸实现。因此,Ada语言的使用可大大改善软件系统的 清晰性,可靠性,有效性,可维护性。
    Ada语言的定义同国际标准化组织(ISO)的标准有很大不同,因为他是一个自由内容形式的。Ada语言由严格的巴斯特范式定义,但是不适合一般人阅读。它是第一种同时拥有IEC/ISO/美国军用标准认证的语言。

    Ada语言最早是针对嵌入式和实时系统设计的,并且在今天依然在这方面使用广泛。
    Ada语言最初设计是为了构建长周期的、高度可靠的软件系统。

    Ada语言的重要特征就是其嵌入式风格,模块化设计,编译检查,平行处理,异常处理及泛型编程。Ada在95年加入了对面向对象设计的支持,包括动态分配等。
    Ada的编译检查主要是针对没有分配的内存读写的保护,堆栈溢出错误,单个错误空闲,队列读写错误以及其他可以避免的小问题。
    Ada的动态内存管理非常安全和高规格。
    Ada也支持单独编译(separate compilation),在物理层上支持模块性。
    Ada包含了很复杂的功能以支持实时(real-time),并发程序设计(concurrent programming)。
    错误可以作为异常(exception)来标示,并可以被明确地处理。

    展开全文
  • 网络安全用什么编程语言 要成为网络安全专家,要取得成功,需要多种技能。 全方位的专业人员可以放心地实施和监视安全措施,以保护计算机系统免受攻击和未经授权的访问。 总部位于巴西的Python专家Henrique教...

    网络安全用什么编程语言

    要成为网络安全专家,要取得成功,需要多种技能。 全方位的专业人员可以放心地实施和监视安全措施,以保护计算机系统免受攻击和未经授权的访问。

    总部位于巴西的Python专家Henrique教人们如何使用该语言创建应用程序,他强调“除了紧跟网络安全领域的最新动态,您还需要熟悉各种编程语言。”

    这里有5种最佳编程语言,可帮助您提高网络安全职业的学习能力。

    1. C和C ++

    C和C ++是网络安全专业人员需要了解的重要的低级编程语言。

    这些语言提供对低级IT基础架构(例如RAM和系统进程)的访问,如果没有很好的保护,则黑客可以轻松利用它们。

    C编程语言是大多数操作系统的骨干。 它是一种精简,灵活且高效的语言,可用于完成各种任务,例如加密,图像处理和套接字网络。

    从本质上讲,C ++通常被视为C的老大哥-它是由裂纹,冰毒和类固醇炮制而成,并且没有任何帮助。 C ++是一种很棒的语言,主要基于C的源代码。

    有一些使用C ++创建的网络安全程序。 例如,网络映射器工具Nmap是使用C ++创建的。

    这是C ++的创建者Bjarne Stroustrup的绝妙报价:

    “ C使脚部射击容易。 C ++使它变得更难,但是当您这样做时,它会使您全力以赴。”

    作为网络安全专家,如果您有使用C / C ++编程语言的经验,您将知道如何应对针对计算环境中较低级别操作的攻击。

    2. Python

    Python是一种高级编程语言,在网络专家中日益流行。

    它之所以受到青睐,主要是因为其对代码可读性的坚持,清晰和简单的语法以及大量库的可用性。

    因此,无论您要执行什么任务,您都可以使用Python轻松完成它。

    例如,您可以使用该语言将TCP数据包发送到计算机,执行恶意软件分析以及创建入侵检测系统,而对第三方工具的依赖程度最低。

    但是,与C / C ++不同,Python不是低级的。 因此,它可能无法提供足够的硬件资源可见性。

    学习用于网络安全的Python将为您的职业带来优势。 您将具备编程技能,可以帮助您识别漏洞并发现如何修复它们。

    无需编程知识

    3. JavaScript

    JavaScript是一种高级编程语言,通常被称为网络的“通用语言”。

    JavaScript是支持Internet的核心技术。 首先,这是一种增加网页交互性的语言。

    尽管JavaScript最初仅在Web浏览器中的客户端上实现,但是现在可以在其他类型的主机基础结构中使用该语言,例如数据库中的服务器端和PDF程序等脱机应用程序。

    因此,由于JavaScript的广泛使用,学习JavaScript可以使您领先于黑客。

    您将了解网站和其他应用程序如何工作的概念,以及用来抵御恶意用户的最佳设计。

    例如,跨站点脚本编写是一种基于JavaScript的攻击,其中涉及攻击者将恶意代码植入Web应用程序中。

    如果您有使用JavaScript编程语言的经验,则可以防止此类攻击的发生。

    4. PHP

    PHP是用于开发网站的服务器端编程语言。 由于大多数网站都是使用PHP创建的,因此学习该语言将使您知道如何抵御入侵者。

    例如,DDoS(拒绝服务)攻击通常试图使目标用户无法使用Web应用程序。

    借助PHP编程知识,再加上其他技术(例如JavaScript)的技能,您可以实施可靠的解决方案来保护Web应用程序的安全。

    5. SQL

    SQL(结构化查询语言)主要用于管理数据库中存储的数据。

    由于当前数据存储系统的爆炸性增长,SQL被广泛用于维护和检索数据。

    同样,黑客正越来越多地精心策划语言以破坏或窃取所存储的数据。

    例如,SQL注入攻击涉及利用SQL漏洞窃取或修改数据库中保存的数据。

    因此,对SQL语言有很好的了解对于您的网络安全事业至关重要。

    结语

    以上并不是网络安全最佳编程语言的详尽列表。

    根据您的特定用例,您可能会发现一种语言比另一种更适合您的角色。

    例如,如果您想专注于保护Web应用程序的前端,那么学习JavaScript可能是您的理想选择。

    但是,要成为一个全面的网络极客,您需要采用一种侦察方法:学习的语言越多越好。

    您永远都不知道哪个人可以拯救您的一天。

    您最好的网络安全编程语言是哪种?

    请在下面的评论部分分享您的想法。

    翻译自: https://hackernoon.com/5-best-programming-languages-to-learn-for-cyber-security-be97071919f9

    网络安全用什么编程语言

    展开全文
  • 本课程包含了socket网络编程常用的所有特性,包括tcp、udp协议的基础编程,广播包,超时连接,多路复用,高并发的epoll多路复用,多线程的服务端。课程讲解理论与实践相结合,实践以代码延时讲解为主。
  • Java语言特点

    万次阅读 多人点赞 2019-06-30 19:37:45
    Java语言是简单的 Java语言的语法与C语言和C++语言很接近,从某种意义上讲,它是由C和C++演变而来,使得大多数程序员很容易学习和使用。 对C++来说进行了简化和一定的提高,如:使用接口代替了复杂的多重继承以及...

    Java图标

    Java语言是简单的

    1. Java语言的语法与C语言和C++语言很接近,从某种意义上讲,它是由C和C++演变而来,使得大多数程序员很容易学习和使用。
    2. 对C++来说进行了简化和一定的提高,如:使用接口代替了复杂的多重继承以及取消了指针,还通过实现垃圾自动回收机制,大大简化了程序员的资源释放管理工作。
    3. 提供了丰富的类库和API文档,以及第三方开发包工具包,还有大量的基于Java的开源项目,帮助程序设计人员参考学习,JDK就是开放的源代码之一,读者可以通过分析项目的源代码,来提高自己的编程水平。

    Java语言是面向对象的

    面向对象就是Java语言的基础,也是Java语言的重要特性。面向对象是指以对象为基本单元,包含属性和方法。对象的状态用属性表达,对象的行为用方法表达。

    面向对象技术使得应用程序的开发变得简单易用,节省代码。总之,Java语言是一个纯面向对象的程序设计语言。

    Java语言是分布式的

    1. 分布性主要包括两大方面,分别是操作分布和数据分布,其中操作分布指的是在多个不同的主机上布置相关操作,数据分布是将数据分别存放在多个网络中不同的主机上,借助的是URL(统一资源定位符)访问网络对象,访问方式和访问本地系统相似。
    2. Java语言具有一个强大的,易于使用的网络能力,这是非常适合于分布式计算程序的。
    3. Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

    Java语言是多线程的

    多线程机制使应用程序在同一时间并行执行多项任务,Java语言提供多线程之间的同步机制,这些相应的同步机制可以很好的保证不同线程,能够正确的共享数据。多线程机制使程序具有更好的交互性和实时性。

    Java语言是高性能的

    1. Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。
    2. 与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。

    Java语言是跨平台的

    1. 所谓的跨平台性,是指软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。这是软件发展的趋势和编程人员追求的目标。之所以这样说,是因为计算机硬件的种类繁多,操作系统也各不相同,不同的用户和公司有自己不同的计算机环境偏好,而软件为了能在这些不同的环境里正常运行,就需要独立于这些平台。
    2. 在Java语言中,Java自带的虚拟机很好地实现了跨平台性。Java源代码经过编译后生成二进制的字节码是与平台无关的,Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够Write once, run anywhere(一次编译,到处运行)的原因。Java虚拟机提供了一个字节码到底层硬件平台及操作系统的屏障,使得Java语言具备跨平台性。

    Java语言是可移植的

    可移植性来源于跨平台性性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。

    Java语言是安全的

    在Java语言中删除了类似于C语言中的指针和内容释放等语法,有效的避免了非法操作内存,代码要经过校验之后才能够运行,所以未经允许的Java程序不可能出现损害系统平台的行为,最大的好处就是,Java可以编写防病毒和可修复的系统,Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击,从而可以提高系统的安全性。

    Java语言是健壮的

    Java语言的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

    Java语言是动态的

    1. Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类,这也有利于软件的升级。
    2. Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
    展开全文
  • 《TCP IP网络编程

    热门讨论 2015-06-02 22:23:10
    《TCP/IP网络编程》针对网络编程初学者,面向具备C 语言基础的套接字网络编程学习者,适合所有希望学习Linux和Windows 网络编程的人。 第一部分主要介绍网络编程基础知识。此部分主要论述Windows和Linux平台网络编程...
  • 基于TCP/IP的网络编程(C++语言编程)

    千次阅读 多人点赞 2018-11-16 15:53:13
    #include<WinSock2.h> //WindowsSocket编程头文件 #include #include #pragma comment(lib,"ws2_32.lib")//链接ws2_32.lib库文件到此项目中 using namespace std; //================全局常量================== /...

    讲解视频连接:https://www.bilibili.com/video/av36095519

    基于TCP/IP的通信基本上都是利用SOCKET套接字进行数据通讯,程序一般分为服务器端和用户端两部分。设计思路(visual studio下):

    第一部分 服务器端
      一、创建服务器套接字(create)。
      二、服务器套接字进行信息绑定(bind),并开始监听连接(listen)。
      三、接受来自用户端的连接请求(accept)。
      四、开始数据传输(send/receive)。
      五、关闭套接字(closesocket)。

    第二部分 客户端
      一、创建客户套接字(create)。
      二、与远程服务器进行连接(connect),如被接受则创建接收进程。
      三、开始数据传输(send/receive)。
      四、关闭套接字(closesocket)。

    service:

    #include<stdio.h>
    #include<stdlib.h>
    #include<WinSock2.h>  //WindowsSocket编程头文件
    #include<iostream>
    #include<cstring>
    #pragma comment(lib,"ws2_32.lib")//链接ws2_32.lib库文件到此项目中
    using namespace std;
    
    //================全局常量==================
             //创建缓冲区
    const int BUF_SIZE = 2048;
    //================全局变量==================
    SOCKET sockSer, sockCli;
    SOCKADDR_IN addrSer, addrCli; //address
    int naddr = sizeof(SOCKADDR_IN);
    
    char sendbuf[BUF_SIZE];
    char inputbuf[BUF_SIZE];
    char recvbuf[BUF_SIZE];
    //================函数声明==================
    int main() {
    	cout << "服务器启动" << endl;
    	//加载socket库
    	WSADATA wsadata;
    	if (WSAStartup(MAKEWORD(2, 2),&wsadata) != 0)
    	{
    		//输出出错信息
    		cout << "载入socket库失败!" << endl;
    		system("pause");
    		return 0;
    	}
    	else {
    		cout << "载入socket库成功!" << endl;
    	}
    	//创建Soucket;
    	sockSer = socket(AF_INET, SOCK_STREAM, 0);
    	//描述协议族,INET属于ipv4;
    	//sock_stream创建套接字类型:tcp;
    	//0不指定协议,常用的协议有tcp、udp等
    
    	//初始化地址包
    	addrSer.sin_addr.s_addr = inet_addr("192.168.138.1");
    	addrSer.sin_family = AF_INET;
    	addrSer.sin_port = htons(1111);
    
    	//绑定Socket(bind)
    	bind(sockSer, (SOCKADDR*)&addrSer, sizeof(SOCKADDR));
    	//强制将SOCKADDR_INET转化成SOCKEADDR
    
    	//监听
    	while (true) {
    		cout << "开始连接!" << endl;
    		//监听连接请求;
    		listen(sockSer,5);
    		//等待连接最大数:5
    
    		//接受连接
    		sockCli=accept(sockSer, (SOCKADDR*)&addrCli, &naddr);
    		if (sockCli != INVALID_SOCKET) {
    			while (true)
    			{
    				cout << "连接成功" << endl;
    				cout << "请输入要发送给客户端的信息:" << endl;
    				cin >> sendbuf;
    				send(sockCli, sendbuf, sizeof(sendbuf), 0);
    				//strcpy(sendbuf, "hello");
    				//send(sockCli, sendbuf, sizeof(sendbuf), 0);
    
    				//接收客户端发来信息
    				recv(sockCli, recvbuf, sizeof(recvbuf), 0);
    				cout << "客户端发来的信息:" << recvbuf << endl;
    			}
    			
    		}
    		else
    		{
    			cout << "连接失败!" << endl;
    		}
    	}
    	closesocket(sockSer);
    	closesocket(sockCli);
    	return 0;
    
    }

    client:

    #include<stdio.h>
    #include<stdlib.h>
    #include<WinSock2.h>  //WindowsSocket编程头文件
    #include<iostream>
    #include<cstring>
    #pragma comment(lib,"ws2_32.lib")//链接ws2_32.lib库文件到此项目中
    using namespace std;
    
    //================全局常量==================
    //创建缓冲区
    const int BUF_SIZE = 2048;
    //================全局变量==================
    SOCKET sockSer, sockCli;
    SOCKADDR_IN addrSer, addrCli; //address
    int naddr = sizeof(SOCKADDR_IN);
    
    char sendbuf[BUF_SIZE];
    char inputbuf[BUF_SIZE];
    char recvbuf[BUF_SIZE];
    //================函数声明==================
    int main() {
    	//加载socket库
    	cout << "客户端启动" << endl;
    	WSADATA wsadata;
    	if (WSAStartup(MAKEWORD(2, 2), &wsadata) != 0)
    	{
    		//输出出错信息
    		cout << "载入socket库" << endl;
    		system("pause");
    		return 0;
    	}
    	//创建Soucket;
    	sockCli = socket(AF_INET, SOCK_STREAM, 0);
    	//描述协议族,INET属于ipv4;
    	//sock_stream创建套接字类型:tcp;
    	//0不指定协议,常用的协议有tcp、udp等
    
    	//初始化客户端地址包
    	addrCli.sin_addr.s_addr = inet_addr("127.0.0.1");
    	addrCli.sin_family = AF_INET;
    	addrCli.sin_port = htons(1111);
    
    	//初始化服务器地址
    	addrSer.sin_addr.s_addr = inet_addr("192.168.138.1");
    	addrSer.sin_family = AF_INET;
    	addrSer.sin_port = htons(1111);
    
    	while (true)
    	{
    		if (connect(sockCli, (SOCKADDR*)&addrSer, sizeof(addrSer))!=SOCKET_ERROR)
    		{
    			while (true)
    			{
    				//接收服务器信息
    				cout << "客户端连接成功" << endl;
    				recv(sockCli, recvbuf, sizeof(recvbuf), 0);
    				cout << "服务端发的信息:" << recvbuf << endl;
    				//发送给服务器信息
    				cout << "请输入要发送给服务器的信息:" << endl;
    				cin >> sendbuf;
    
    				send(sockCli, sendbuf, sizeof(sendbuf), 0);
    				cout << "发送成功" << endl;
    			}
    			
    		}
    		else
    		{
    			//cout << "客户端连接失败" << endl;
    		}
    	}
    	closesocket(sockSer);
    	closesocket(sockCli);
    	return 0;
    }

     

    展开全文
  • 第四代编程语言_几代编程语言

    千次阅读 2020-07-20 09:46:05
    第四代编程语言 几代编程语言 (Generations of programming language) Programming languages have been developed over the year in a phased manner. Each phase of developed has made the programming language ...
  • 游戏开发中常见的10种编程语言

    千次阅读 2019-11-18 20:53:24
    他们需要具有特定需求的编程语言。 以下是用于游戏开发的十大编程语言的列表。 1、C# C#如今在许多游戏引擎中广泛使用,并且是游戏开发所需的很流行的语言之一。 它具有XNA框架,该框架是Microsoft的一组工具和...
  • 150讲轻松学习Python网络爬虫

    万人学习 2019-05-16 15:30:54
    比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取...
  • Python网络爬虫基础篇

    万人学习 2018-06-28 18:18:12
    本课程主要给大家分享基于Python语言网络爬虫基础篇体验,其中讲解爬虫原理介绍,urllib和requests爬虫库的使用,以及网络爬虫中的数据分析与信息提取。通过模拟Web的GET和POST请求来爬取数据,介绍如何应对各种...
  • 轻松入门Tensorflow

    千人学习 2019-09-28 13:24:55
    以手写数字识别为例,介绍TensorFlow框架实战。 从数据集读取、数据增强、卷积神经网络构建、超参数设置、模型训练、模型保存、验证集测试以及模型调优等, 完整再现深度学习实战的完整过程。
  • GO语言使用之网络编程(TCP编程)

    千次阅读 2018-09-13 09:24:02
    网络编程是一个复杂的学科, 协议(TCP/IP)、IP地址、端口等,推荐学习TCP-IP协议卷1-3. 下面通过一个实例来感受go中的TCP 编程。 二、TCP快速入门案例 1、服务端 服务端的处理流程: 监听端口 8888 接收...
  • 常用编程语言简介

    千次阅读 2019-03-26 20:00:39
    C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。 在 1978 年,布莱恩·柯林汉(Brian Kernighan)和...
  • 十大热门编程语言的介绍

    万次阅读 2019-03-30 09:44:07
    小编给大家分享一篇关于现阶段十大热门编程语言的文章:经过流行的搜索引擎,如谷歌,必应,雅虎,维基百科,亚马逊,YouTube和百度,用于计算评级;得出十大热门编程语言排行榜的榜单: 根据百度百科以及网上查阅...
  • 人工智能ai用什么编程语言 如今,人们期望AI程序员掌握多种语言,因为它们是在跨学科环境中而不是在孤岛中工作。 该列表为Python,R,Java,Lisp,Prolog,Julia等。 尽管当前这一代人更喜欢Python,但是前端开发...
  • 2021年最有前途的10种编程语言

    千次阅读 2021-01-30 13:51:08
    如果您正在考虑在2021年采用或学习一种新的编程语言,请继续阅读以发现2021年我们排名前十的编程语言的好处。 1. Python Python徽标。 Python是目前发展最快的语言之一。Python Web开发框架,例如Django和Pyramid,...
  • 常用编程语言介绍及各语言特点

    千次阅读 2019-03-26 16:17:26
    c语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛...
  • 常用编程语言介绍和特点

    千次阅读 2019-03-28 20:18:28
    (一)编程语言介绍 编程语言(programminglanguage),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并...
  • 因为有很多的编程语言我也不是很懂,所以借鉴了一些专业人员的看法。当然他们不是黑客。然后下面给大家大概的介绍下其中六个吧。 1. Python:作为黑客编程的事实上的语言,Python被誉为最佳编程语言黑客入侵,...
  • 图灵机与编程语言

    千次阅读 2018-03-08 10:40:33
    这本书描述了两大人工智能的发展方向,一派主张拟生物大脑(譬如人工神经网络),另一派则主张用逻辑和符号系统(譬如自动定理证明)。真正伟大的飞跃以1937年图灵关于可计算数的开创性论文开始,奠定了计算机发展的...
  • 21天通关Python(仅视频课)

    万人学习 2019-05-21 13:58:33
    内容包括Python基本数据类型、Python列表、元组和字典、流程控制、函数式编程、面向对象编程、文件读写、异常控制、数据库编程、并发编程与网络编程、数据可视化分析、Python爬虫等。 全套课程从Python基础开始介绍...
  • 计算机编程语言可用于将指令传达给计算机。下面可能是史上最全编程语言列表,我将它们分为以下几类,你掌握了哪些?解释型编程语言 函数式编程语言 编译型编程语言 过程式编程语言 脚本编程语言 标记编程语言 基于...
  • 各大主流编程语言比较,运用场景

    万次阅读 多人点赞 2016-06-26 00:16:05
    摘要一个星期没写博客了,晚上看了别人写的博客及各大编程语言,突然发现自己尽管了解大部分编程语言,但对各个语言的运用场景及发展前景并不明晰,我想很多人也跟我一样,做一行,只了解本行的发展,但真正的市场趋势并不...
  • 世界上到底有多少种编程语言

    千次阅读 2021-11-04 15:19:16
    查遍网络之后,仍然没有找到准确答案,只知道几千的数量是有的,但是我们常用的也就几十来个,其中最常见的便是Java、Python、C++、C语言、JavaScript、GO、Swift等这几种,主要是这几种比较流行,使用的人也较多,...
  • 编程语言 - 强弱/动静态类型

    千次阅读 2020-04-28 12:35:58
    了解编程语言的分类及显著的区别, 帮助理解编程语言的本质,和帮助快速学习一门新的语言. 2.学习/操作 1. 动静态类型 要理解一门语言是静态类型还是动态类型,最本质的判断方法是看在什么时间段对类型就...
  • web开发基本常用语言

    千次阅读 2018-12-29 19:34:47
    做Web开发,Web框架一定要熟悉,框架是Web架构开发中必不可少的工具,不仅可以提高开发效率,还能让开发项目更成熟,并且可以提升代码的可再用性,Web框架开发离不开相应的开发语言,以下是常用的Web架构开发语言: ...
  • 课程为零基础学习开发的学员而准备,无需...JS包含核心语法、面向对象编程、复杂的项目案例、HTTP网络协议、AJAX前后端异步交互等;新型前端开发大部分回归原始开发,核心编程能力非常重要,本课程教会你如何玩转前端。
  • Matlab小白入门必备教程

    千人学习 2019-12-30 15:27:30
    MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级计算语言和交互式环境,本课程将深入浅出讲解 MATLAB 的基本操作、MATLAB 编程和绘图等。          
  • 常用编程语言的特点以及应用 编程语言有很多种,以下就是对一些常用的编程语言的简单介绍和特点以及他们的一些应用领域。希望对你能有所帮助。 在介绍各种编程语言前,我们先来看一下下面这个图,从图中可以明显看...
  • 开发人工智能使用哪种编程语言

    千次阅读 多人点赞 2021-07-29 09:50:22
    最适合人工智能开发的5种编程语言,你知道几种? 01、Python 第一名毫无疑问是 Python。尽管 Python 有些特性令人不爽(whitespace、Python 2.x 和 Python 3.x 之间的巨大差异、五种不同的包机制都在不同程度上有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 504,559
精华内容 201,823
关键字:

常见的网络编程语言