网络编程

定义

        计算机网络

                是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

        网络编程

                用来实现网络互连的不同计算机上运行的程序间可以进行数据交换

IP地址

            每个设备在网络中的唯一标识

            每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址

            ipconfig:查看本机IP

            ping:测试连接

            本地回路地址:127.0.0.1

            IPv4:4个字节组成,4个0-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽

            IPv6:8组,每组4个16进制数

端口号

            每个程序在设备上的唯一标识

            每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序

            端口号范围从0-65535

            编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序占用了

协议

        为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

                UDP

                        面向无连接,数据不安全,速度快。不区分客户端与服务端。

                TCP

                        面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。

                        三次握手: 客户端先向服务端发起请求, 服务端响应请求, 客户端发送确认信息

二. Socket通信

        定义

                网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字

                通信的两端都有Socket

                网络通信其实就是Socket间的通信

                数据在两个Socket间通过IO流传输

                Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的 IP和port

三. UDP传输

        发送Send

                创建DatagramSocket, 随机端口号

                创建DatagramPacket, 指定数据, 长度, 地址, 端口

                使用DatagramSocket发送DatagramPacket

                关闭DatagramSocket

        接收Receive

                创建DatagramSocket, 指定端口号

                创建DatagramPacket, 指定数组, 长度

                使用DatagramSocket接收DatagramPacket

                关闭DatagramSocket

                从DatagramPacket中获取数据

        接收方获取ip和端口号

                String ip = packet.getAddress().getHostAddress();

                int port = packet.getPort();


五. TCP协议

        定义

                客户端和服务器间的交流, 客户端发送信息,服务器接收到,并返回信息

                长连接

        使用步骤

            客户端

                    创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器

                    调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流

                    输入流可以读取服务端输出流写出的数据

                    输出流可以写出数据到服务端的输入流

            服务端

                    创建ServerSocket(需要指定端口号)

                    调用ServerSocket的accept()方法接收一个客户端请求,得到一个Socket

                    调用Socket的getInputStream()和getOutputStream()方法获取和客户端相连的IO流

                    输入流可以读取客户端输出流写出的数据

                    输出流可以写出数据到客户端的输入流


总结:

        网络传输的概述

                ip : 通过ip可以找到网络中的一台机器

                port :  通过端口号可以找到电脑中某个程序

                ip+port : 一个套接字

                udp :  快, 不安全 面向无连接

                tcp :  慢 ,安全  面向有链接

        UDP 编码

                DatagramSocket

                DatagramPacket

                DatagramPacket包裹着ip地址,端口号, 数据, DatagramSocket发送包裹

                接收端和发送端时平等的

        TCP编程

                Socket 

                ServerSocket

                ServerSocket可以接收多个Socket  , 每接收一个客户端连接, 就会创建一个Socket 和客户端通信

                TCP的最大优点 : 两端是由一个通道连接, 可以随意传输数据, 不会受数据量大小的限制

                服务端一般和多线程配合使用

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342