网络编程

C# 网络编程之简易聊天示例

匿名 (未验证) 提交于 2019-12-02 22:09:29
还记得刚刚开始接触编程开发时,傻傻的将网站开发和网络编程混为一谈,常常因分不清楚而引为笑柄。后来勉强分清楚,又因为各种各样的协议端口之类的名词而倍感神秘,所以为了揭开网络编程的神秘面纱,本文尝试以一个简单的小例子,简述在网络编程开发中涉及到的相关知识点,仅供学习分享使用,如有不足之处,还请指正。 概述 在TCP/IP协议族中,传输层主要包括TCP和UDP两种通信协议,它们以不同的方式实现两台主机中的不同应用程序之间的数据传输,即数据的端到端传输。由于它们的实现方式不同,因此各有一套属于自己的端口号,且相互独立。采用五元组(协议,信源机IP地址,信源应用进程端口,信宿机IP地址,信宿应用进程端口)来描述两个应用进程之间的通信关联,这也是进行网络程序设计最基本的概念。传输控制协议(Transmission Control Protocol,TCP)提供一种面向连接的、可靠的数据传输服务,保证了端到端数据传输的可靠性。 涉及知识点 本例中涉及知识点如下所示: TcpClient : TcpClient类为TCP网络服务提供客户端连接,它构建于Socket类之上,以提供较高级别的TCP服务,提供了通过网络连接、发送和接收数据的简单方法。 TcpListener:构建于Socket之上,提供了更高抽象级别的TCP服务,使得程序员能更方便地编写服务器端应用程序。通常情况下

C# Socket网络编程

匿名 (未验证) 提交于 2019-12-02 22:06:11
  晚上利用空闲时间,用Socket做了一些小功能。   功能如下:     a.聊天     b.传文件     c.抖动好友 主界面: 服务器 客户端 操作步骤: 服务器(测试环境的IP地址为:192.168.92.111,视情况而定):--->开始监听 客户端:--->连接 注:服务端和客户端同时运行步骤: 功能一: 服务端 客户端 功能二: 客户端 客户端 功能三: 服务端:点击“震动” 客户端:接受服务端发来的响应 项目源码: 链接:https://pan.baidu.com/s/190_64X6Uhx7vAGISEc6DYQ 提取码:4u95 文章来源: C# Socket网络编程

linux网络编程系列-TCP/IP模型

匿名 (未验证) 提交于 2019-12-02 21:59:42
### OSI:open system interconnection ### 开放系统互联网模型是由ISO国际标准化组织定义的网络分层模型,共七层 ### TCP/IP四层模型 ### #### 端口 #### #### 协议说明、封装、分用 #### MTU:以太网最大数据传输单元 ICMP:传递差错信息、时间、网络信息等控制数据 ARP:地址解析协议,映射IP地址到MAC地址 RARP:地址解析协议,映射MAC地址到IP地址 封装: 应用层->链路层 (IP地址转换为MAC地址) 分用: 链路层->应用层 (MAC地址转换为IP地址) #### 主机A ping 主机B 数据在网络中的传输说明 #### ### IP数据报格式 ### ### TCP报文格式 ### ### TCP连接建立三次握手 ### TCP A 发送SYN a->TCP B //A请求建立连接 TCP B 发送SYN b ACK a+1 ->TCP A //确认收到请求,并请求A回复 ### TCP连接终止的四次握手 ### TCP A 发送FIN x ACK y->TCP B //A请求终止连接 TCP B 发送ACK x+1 ->TCP A //B收到终止请求并回复给A TCP A 发送ACK y+1->TCP B //A收到终止请求并回复给B ### 滑动窗口协议(流量控制) ### 原文

Linux 网络编程―― libpcap 详解

匿名 (未验证) 提交于 2019-12-02 21:59:42
概述 libpcap 是一个 网络数据包捕获函数库 ,功能非常强大,Linux 下著名的 tcpdump 就是以它为基础的。 libpcap主要的作用 1)捕获各种数据包,列如:网络流量统计。 2)过滤网络数据包,列如:过滤掉本地上的一些数据,类似防火墙。 3)分析网络数据包,列如:分析网络协议,数据的采集。 4)存储网络数据包,列如:保存捕获的数据以为将来进行分析。 libpcap 的安装 libpcap 的抓包框架 pcap_lookupdev() :函数用于查找网络设备,返回可被 pcap_open_live() 函数调用的网络设备名指针。 pcap_lookupnet() :函数获得指定网络设备的网络号和掩码。 pcap_open_live() : 函数用于打开网络设备,并且返回用于捕获网络数据包的数据包捕获描述字。对于此网络设备的操作都要基于此网络设备描述字。 pcap_compile() : 函数用于将用户制定的过滤策略编译到过滤程序中。 pcap_setfilter() :函数用于设置过滤器。 pcap_loop() :函数 pcap_dispatch() 函数用于捕获数据包,捕获后还可以进行处理,此外 pcap_next() 和 pcap_next_ex() 两个函数也可以用来捕获数据包。 pcap_close() :函数用于关闭网络设备,释放资源。 利用

Linux网络编程必看书籍推荐

匿名 (未验证) 提交于 2019-12-02 21:53:52
分享一下我老师大神的人工智能教程!零基础,通俗易懂! http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 首先要说讲述计算机网络和TCP/IP的书很多。 先要学习网络知识才谈得上编程 讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。 《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。 目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而linux就是受其影响。。。。 第五版是2012年出的,也比较新。 作  者: (美)特南鲍姆,(美)韦瑟罗尔 著 严伟,潘爱民 译 丛 书 名: 出 版 社: 清华大学出版社ISBN:9787302274629出版时间:2012-03-01 ----------------------------------------------------------------------------- 《计算机网络:自顶向下方法(原书第4版) 》 作  者: (美)库罗斯 著 陈鸣 等 译 丛 书 名:计算机科学丛书出 版 社: 机械工业出版社ISBN:9787111165057出版时间:2009-01-01 《计算机网络系统方法

Java 原生网络编程.

匿名 (未验证) 提交于 2019-12-02 21:53:52
一、概念 public static void uRLTest(){ try { //URL:统一资源定位符(网址) URL url = new URL("http://www.baidu.com"); InputStream inputStream = url.openStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; while ((line = bufferedReader.readLine())!=null){ System.out.println(line); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void uRLConnectionTest(){ try {

java网络编程之UDP、TCP

匿名 (未验证) 提交于 2019-12-02 21:53:52
UDP: /** * UDP传输 * * 1.发送Send * 创建DatagramSocket, 随机端口号 * 创建DatagramPacket, 指定数据, 长度, 地址, 端口 * 使用DatagramSocket发送DatagramPacket * 关闭DatagramSocket * @throws Exception * */ /** * 2.接收Receive * 创建DatagramSocket, 指定端口号 * 创建DatagramPacket, 指定数组, 长度 * 使用DatagramSocket接收DatagramPacket * 关闭DatagramSocket * 从DatagramPacket中获取数据 * @throws Exception */ package cn . jkc . net ; import java . net . DatagramPacket ; import java . net . DatagramSocket ; import java . net . InetAddress ; import java . util . Scanner ; public class Main03 { /** * UDP传输优化 send * @param args * @throws Exception */

Java高并发网络编程(一)

匿名 (未验证) 提交于 2019-12-02 21:52:03
一、OSI网络七层模型 因特网是一个极为复杂的网络,分层有助于我们对网络的理解 。分层也是一种标准,为了使不同厂商的计算机能够互相通信,以便在更大范围内建立计算机网络,有必要建立一个国际范围的网络体系结构标准。 ISO组织制定了OSI网络七层模型 应用层 表示层 会话层 传输层 网络层 链路层 物理层 而因特网只用到了五层 应用层 传输层 网络层 链路层 物理层 低三层: 屏蔽底层网络的复杂性 物理层:使原始的数据比特流能在物理介质上传输。 数据链路层:通过校验、确认和反馈重发等手段,形成稳定的数据链路。(01010101) 网络层:进行路由选择和流量控制。(IP协议) 传输层:提供可靠的端口到端口的数据传输服务(TCP/UDP协议)。 高三层: 会话层:负责建立、管理和终止进程之间的会话和数据交换。 表示层:负责数据格式转换、数据加密与解密、压缩与解压缩等。 应用层:为用户的应用进程提供网络服务。 网络通信协议 二、传输层控制协议TCP 传输层控制协议(TCP)是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。应用程序在使用TCP之前,必须先建立TCP连接。 1.TCP握手机制 检测网络是否通畅 三、用户数据报协议UDP 用户数据报协议UDP是Internet传输层协议。提供无连接、不可靠、数据尽力传输服务。 TCP和UDP比较 四

Java 网络编程:必知必会的 URL 和 URLConnection

匿名 (未验证) 提交于 2019-12-02 21:52:03
java.net.URL 类将 URL 地址进行了封装,并提供了解析 URL 地址的基本方法,比如获取 URL 的主机名和端口号。 java.net.URLConnection 则代表了应用程序和 URL 之间的通信链接,可用于读取和写入此 URL 引用的资源。 URLConnection 看起来只是比 URL 多了一个 Connection,它们之间的关系也仅限于此吗? 01、什么是 URL 为了搞清楚什么是 URL,需要引入另外两个概念 URI 和 URN。 什么鬼,URL 都没搞清楚,又来两个搞不清楚的?别担心,我能像变了魔法一样让大家把三个都搞清楚。 URI = Universal Resource Identifier,中文释义为统一资源标志符 URL = Universal Resource Locator,中文释义为统一资源定位符 URN = Universal Resource Name,中文释义为统一资源名称 它们之间的关系如下图所示: 这图啥意思啊,怎么办呢?张小敬有问题就去问葛佬,咱不会就去问“维基百科”啊。 URI 可以分为 URL 和 URN,或者是 URL 和 URN 的结合体(同时具备 Locator 和 Name)。URN 就好像一个人的名字,URL 就像一个人的地址。换句话说:URN 确定了身份,URL 提供了找到它的方式。 概念清晰了吧?URI