网络编程-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. fade away

  2. BZOJ 2243:染色(树链剖分+区间合并线段树)

    [SDOI2011]染色Description给定一棵有n个节点的无根树和m个操作,操作有2类:1.将节点a到节点b路径上所有点都染成颜色c:2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认 ...

  3. 【bzoj4710】[Jsoi2011]分特产 容斥原理+组合数学

    题目描述 JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望任何一个同学因 ...

  4. 秀秀的照片(photo)

    秀秀的照片(photo) 题目描述 华华在和秀秀视频时有截很多图.华华发现秀秀的每一张照片都很萌很可爱.为什么会这样呢?华华在仔细看过秀秀的所有照片后,发现秀秀的照片都具有一个相同的性质. 设秀秀的分 ...

  5. splay模板整理

    1.插入一个数 void insert(int x) { if (!root) { ++tot; e[tot].left = e[tot].right = e[tot].fa = ; e[tot].v ...

  6. Python数据结构之列表

    1.Python列表是Python内置的数据结构对象之一,相当于数组 2.列表用[] 包含,内有任意的数据对象,每一个数据对象以 ,逗号分隔,每隔数据对象称之为元素 3.Python列表是一个有序的序 ...

  7. HDU3538 A sample Hamilton path

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  8. 控制台或Winform程序中如何编码或解码Server.URLEncode

    原文发布时间为:2010-07-10 -- 来源于本人的百度文章 [由搬家工具导入] 在Asp.net中可以使用Server.HTMLEncode和Server.URLEncode 将文本或URL的特 ...

  9. MEF 注入[转载]

    领域服务的时候,用到MEF的注入有参构造函数的方法,your master was attracted,打算稍微深挖一下,这篇来对此知识点做个总结. 一.知识点回顾 MEF作为IOC的方式之一,它的主 ...

  10. 解决Manjaro linux的中文输入

    系统安装完成后, 首先:安装中文输入法:pacman -S fcitx fcitx-libpinyin kcm-fcitx 接着:修改.xprofile 添加内容如下: export GTK2_RC_ ...