网络编程-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. 【bzoj4259/bzoj4503】残缺的字符串/两个串 FFT

    bzoj4259 题目描述 很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度为m,B串长度为n.可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有 ...

  2. 妹子(girls)

    妹子(girls) 题目描述 万人迷皮皮轩收到了很多妹子的礼物,由于皮皮轩觉得每个妹子都不错,所以将她们礼物的包装盒都好好保存,但长此以往皮皮轩的房间里都堆不下了,所以只能考虑将一些包装盒放进其他包装 ...

  3. 洛谷P2866 [USACO06NOV]糟糕的一天Bad Hair Day

    P2866 [USACO06NOV]糟糕的一天Bad Hair Day 75通过 153提交 题目提供者洛谷OnlineJudge 标签USACO2006云端 难度普及/提高- 时空限制1s / 12 ...

  4. C++ qsort() 函数调用时实参与形参不兼容的问题解决

    <剑指OFFER>刷题笔记 —— 扑克牌顺子 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自 ...

  5. Databus架构分析与初步实践

    简介 Databus是一个低延迟.可靠的.支持事务的.保持一致性的数据变更抓取系统.由LinkedIn于2013年开源.Databus通过挖掘数据库日志的方式,将数据库变更实时.可靠的从数据库拉取出来 ...

  6. win8.1 uefi引导

    装上win8后,感觉似乎开机比win7要慢一些,但实际掐表又发现几乎无差别,但是看网上别人都说 win8可以10秒以内开机,然后又说他们是采用uefi引导,而不是bios引导,那我也试试吧,如下: 1 ...

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

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

  8. mdev详解【转】

    转自:http://blog.chinaunix.net/uid-29401328-id-5019678.html 一.概述 mdev是busybox提供的一个工具,用在嵌入式系统中,相当于简化版的u ...

  9. JDBC加载驱动的方法+statement

    加载驱动方法 1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 2. DriverManager.r ...

  10. malloc和free函数的使用

    #include <stdio.h> #include <stdlib.h> int main() { int *p,t; p = (int *)malloc(40*sizeo ...