网络编程-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. button的默认type居然是submit

    今天使用了html中的button标签,用js写了一点代码来完成onclick实践,当我点下它的时候,它不仅执行了我写的function,还把表单给提交了,一查它的button居然是sumbit. 然 ...

  2. uvalive 6323 状态压缩DP

    思路:dp[i][j][x]表示状态 i 以 j 为结束 得分为 x 的方案数. #include<iostream> #include<cstdio> #include< ...

  3. javascript new关键字做了什么

    基本过程 1.创建一个空对象2.空对象的原型指向其构造函数的原型属性3.执行构造函数,且构造函数的this指向该对象4.判断构造函数返回值类型,若为值类型,返回空对象本身,若为引用类型,返回这个引用类 ...

  4. Codeforces Round #316 (Div. 2) C 思路/模拟

    C. Replacement time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  5. php合并图片

    <?php class image{ /** * @param string $backgroundImage 背景图 * @param string $smallImage 小图 * @par ...

  6. linux之软硬链接【转】

    链接---------是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法. Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(S ...

  7. hihocoder #1419 : 后缀数组四·重复旋律4

    #1419 : 后缀数组四·重复旋律4 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为长度为 N 的数构 ...

  8. 【UVA11859】Division Game(SG函数,Nim游戏)

    题意:给定一个n*m的矩阵,两个游戏者轮流操作. 每次可以选一行中的1个或多个大于1的整数,把它们中的每个数都变成它的某个真因子,不能操作的输. 问先手能否获胜 n,m<=50,2<=a[ ...

  9. javascript提示框,随着鼠标移动

    原文发布时间为:2009-04-23 -- 来源于本人的百度文章 [由搬家工具导入] <html><script type="text/javascript"&g ...

  10. onbeforeunload 的使用

    原文发布时间为:2008-10-20 -- 来源于本人的百度文章 [由搬家工具导入] onbeforeunload 可以在页面关闭,刷新,跳转时弹出提示信息,防止意外的跳转使得当前页的表单内容被清空。 ...