网络编程-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. mac最新系统安装beego出现kiil 9

    (内容来自:http://www.oschina.net/question/2626413_2237311) 应该是最新mac OS 12.04的锅. 现在的解决办法是回退bee到以前版本. cd $ ...

  2. BZOJ 1864:[Zjoi2006]三色二叉树(树DP)

    三色二叉树 问题描述 输入 仅有一行,不超过500000个字符,表示一个二叉树序列. 输出 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 样例输入 1122002010 ...

  3. GDOI2018 爆零记,Challenge Impossibility

    蒟蒻的GDOI又双叒叕考挂啦...... Day 0 && Day -1 学校月考,貌似考的还不错? 然而考完试再坐船去中山实在是慢啊......晚上10点才到酒店 wifi差评... ...

  4. openssl-1.0.1c交叉编译动态库(转)

    linux编译相关(13)  版权声明:本文为博主原创文章,未经博主允许不得转载. #交叉编译openssl ------直接修改Makefile新加这一行:CROSS_COMPILE= arm-un ...

  5. idea工具开发注意事项

    pom.xml中不需要有包 <dependency> <groupId>javax</groupId> <artifactId>javaee-api&l ...

  6. 【12】vue-router 之路由重定向

    看之前的项目,突然发现一个不算bug的bug,之前也是一直没有想到,现在发现之后越来越觉得有必要改掉, 项目用的是vue做的,自然切换用的就是路由,一级路由包括:首页.记录和个人中心,二级路由是在记录 ...

  7. 事务的四大属性ACID即事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability.。

    事务的四大属性ACID即事务的原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability.. 原子性(Atomicity) 原子性是指事 ...

  8. nginx进行项目域名配置时提示Job for nginx.service failed

    ps aux | grep nginx /bin/systemctl stop nginx.service /bin/systemctl start nginx.service /bin/system ...

  9. 【BZOJ4300】绝世好题(二进制,DP)

    题意: n<=100000,ai<=2*10^9 思路:按二进制逐位考虑,只要有至少1位取and后为1就可以接下去 设dp[i]为第i位取and之后为1的最长的序列长度,意会一下 #inc ...

  10. manjaro中okular中的pdf文件无法显示中文

    最近发现Manjaro下用Okular打开含有中文的PDF文档时,许多地方显示空白, 开始怀疑是中文字体问题,但是其他的软件中文显示都是正常的. 接着,调整Okular中的中文字体,显示还是不正常. ...