网络编程-UDP-TCP)

UDP 特点:(面向无连接)(聊天)

1、将数据及源和目的封装成数据包中,不须要建立连接。(封包。无连接)

2、每一个数据包的限制大小在64k内。(小数据)

3、因无连接。是不可靠协议。(不可靠。丢数据)

4、不须要建立连接,速度快。(速度快)

TCP 特点:(面向连接)(下载)

1、建立连接,形成数据传输的通道。(传输,连接)

2、在连接中进行大数据量传输。(大数据)

3、通过三次捂手完毕连接。是可靠协议。(可靠。在? 我在。我知道你在了)

4、必须建立连接,效率会稍低。(速度慢)

(网络编程-Socket)(Socket也称套接字)

1、Socket就是为网络服务提供的一种机制。

2、通信的两端都有Socket。

3、网络通信事实上就是Socket间的通信。

4、数据在两个Socket间通过IO传输。

注意:Socket能够理解为码头,有码头才有船能够对货(数据)进行装卸(读写)。

可是因为船运输的方式不同。所以有了不同的服务方式。

一个是UDP,另外一个是TCP。

练习:建立一个文本转换server

* client给服务端发送一个文本文件,服务端会将文本转成

* 大写在返回给client

* 并且client能够不断的进行文本转换,当client输入over时

思路:

* client

* 既然是操作设备上的数据,那么就能够使用IO技术,并依照

* IO的操作规律来思考,

* 源:键盘录入

* 目的:网络设备,网络输出流

* 并且操作的是文本数据。能够选择字符流。

* 步骤:

* 1.建立服务

* 2.获取键盘录入

* 3.将数据发给服务端

* 4.服务端返回大写数据

* 5.关闭资源

public static void main(String[] args) throws Exception {

Socket s=new  Socket();

// 定义读取键盘数据的流对象

BufferedReader bufr=new 

BufferedReader(new InputStreamReader(System.in));

// 定义目的,将数据写入到socket输出流。发给服务端

/*BufferedWriter  bufout=new 

BufferedWriter(new OutputStreamWriter(s.getOutputStream()));*/

// 定义一个socket读取流,读取服务端返回的大写信息

BufferedReader   bufin=new 

BufferedReader(new InputStreamReader(s.getInputStream()));



PrintWriter  out=new PrintWriter(s.getOutputStream(),true);

String line=null;

while ((line=bufr.readLine())!=null) {



if ("over".equals(line)) {

break;


}

out.println(line);

/*bufout.write(line);

bufout.newLine();

bufout.flush();*/

String str=bufin.readLine();

System.out.println("servce:"+str);



}

bufr.close();

s.close();

}





}

服务端

*源:socket读取流

*目的:socket输入流

public static void main(String[] args) throws Exception {

ServerSocket  ss=new ServerSocket(10005);

Socket s=ss.accept();

// 读取socket读取流中的数据

BufferedReader bufin=new 

BufferedReader(new InputStreamReader(s.getInputStream()));

// 目的。

socket输出流。将大写数据写入到socket输出流。并发送给client

BufferedWriter bufout=new 

BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

String line=null;

while ((line=bufin.readLine())!=null){

System.out.println(line);

bufout.write(line.toUpperCase());

bufout.newLine();

bufout.flush();

}

s.close();

ss.close();

}







}

网络编程-UDP-TCP的更多相关文章

  1. java 网络编程 UDP TCP

    网络编程 网络编程主要用于解决计算机与计算机(手机.平板..)之间的数据传输问题. 网络编程: 不需要基于html页面就可以达到数据之间的传输. 比如: feiQ , QQ , 微信....网页编程: ...

  2. Python复习笔记(六)网络编程(udp/tcp)

    一.网络-udp(用户数据报协议) 用户数据报协议 类似写信,不安全,数据有可能丢 1.1 ip地址 注意: IP地址127.0.0.1 ~ 127.255.255.255 用于回路测试 私有ip地址 ...

  3. 【网络编程1】网络编程基础-TCP、UDP编程

    网络基础知识 网络模型知识 OSI七层模型:(Open Systems Interconnection Reference Model)开放式通信系统互联参考模型,是国际标准化组织(ISO)提出的一个 ...

  4. 嵌入式linux的网络编程(1)--TCP/IP协议概述

    嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...

  5. Socket网络编程-UDP编程

    Socket网络编程-UDP编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.UDP编程概述 1>.UDP服务端编程流程 创建socket对象.socket.SOCK_ ...

  6. 【转载】[基础知识]【网络编程】TCP/IP

    转自http://mc.dfrobot.com.cn/forum.php?mod=viewthread&tid=27043 [基础知识][网络编程]TCP/IP iooops  胖友们楼主我又 ...

  7. C#网络编程之---TCP协议的同步通信(二)

    上一篇学习日记C#网络编程之--TCP协议(一)中以服务端接受客户端的请求连接结尾既然服务端已经与客户端建立了连接,那么沟通通道已经打通,载满数据的小火车就可以彼此传送和接收了.现在让我们来看看数据的 ...

  8. c/c++ 网络编程 UDP 设定MTU

    网络编程 UDP 设定MTU MTU(Maximun Transmisson Unit):一次送信的最大size. 在程序里动态改变MTU.注意:程序运行需要root权限. 程序运行的方法: sudo ...

  9. c/c++ 网络编程 UDP up/down 网卡

    网络编程 UDP up/down 网卡 在程序里动态改变网卡的状态.注意:程序运行需要root权限. 程序运行的方法: sudo ./a.out 1,关闭网卡 #include <stdio.h ...

  10. c/c++ 网络编程 UDP 改变网关和网卡名字

    网络编程 UDP 改变网关和网卡名字 在程序里动态改变网关和网卡名字 1,改变网卡名字 #include <stdio.h> #include <string.h> #incl ...

随机推荐

  1. css对html中表格单元格td文本过长的处理

    参考 http://www.cnblogs.com/lekko/archive/2013/04/30/3051638.html http://www.zhangxinxu.com/wordpress/ ...

  2. Java EE 学习(2):使用 IDEA 开发 最简java web

    参考:http://www.cnblogs.com/carsonzhu/p/5468223.html 使用IntelliJ IDEA开发java web 前言:由于本人以前简略的学习过 java 语言 ...

  3. 合理使用webpack提高开发效率

    虽然公司有提供现成的脚手架工具,但是作为开发人员懂得必要的相关知识还是很重要的.这样有利于提高我们的开发效率,优化我们的代码. 关于npm scripts 什么是npm scripts npm 允许在 ...

  4. IntelliJ IDEA 学习--内存设置

    小伙伴们经常会发现,在开发的时候,经常遇到内存被占满,导致异常卡顿,有时候提示内存溢出,这时可以通过设置xmx来改善.不过切记最好不要超过内存的1/4 打开 IDEA 安装目录,看到有一个 bin 目 ...

  5. uoj 131/bzoj 4199 [NOI2015]品酒大会 后缀树+树d

    题目大意 见uoj131 分析 题目的提示还是很明显的 \(r\)相似就就代表了\(0...r-1\)相似 建出后缀树我们能dfs算出答案 再后缀和更新一下即可 注意 细节挺多的,但数据很良心 不然我 ...

  6. RocketMq使用注意事项

    Topic 一个Topic是一个主题.一个系统中,我们可以将消息划成Topic,这样,将不同的消息发送到不同的queue. Queue 一个topic下,我们可以设置多个queue,每个queue就是 ...

  7. Bluedroid之GKI

    1. 概述 GKI以库libbt-brcm_gki.a的形式提供给Bluedroid使用 该层是一个适配层,适配了OS相关的进程.内存相关的管理,还可以用于线程间传递消息 主要通过变量gki_cb(结 ...

  8. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---34

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  9. linux下的程序调试方法汇总

    搞电子都知道,电路不是焊接出来的,是调试出来的.程序员也一定认同,程序不是写出来的,是调试出来的.那么调试工具就显得尤为重要,linux作为笔者重要的开发平台,在linux中讨论调试工具主要是为那些入 ...

  10. NS5S1153 切換器

    昨天在研讀 NS5S1153 的 spec, 發現有一個詞 很陌生 DPDT, 原來是 double pole double throw 的縮寫,雙軸雙切, 更詳細的解釋可以看這個博客的另一篇 &qu ...