网络编程之TCP协议与UDP对比
网络编程之TCP协议与UDP对比
UDP协议:
1,面向无连接。
2,不可靠协议,容易丢包。
3,速度快。
4,包体积有限制,64k以内。
通常,聊天,在线视频,凌波。
TCP协议:
1、面向连接。
2、通过三次握手完成连接。
3、是可靠的协议。
4、相对udp稍慢。
ServerSocket:编写TCP网络服务程序,首先要用到java.net.ServerSocket类用以创建服务器Socket
构造方法:
ServerSocket(int port):创建绑定到特定端口的服务器套接字
ServerSocket(int port, int backlog):利用指定的backlog(服务器忙时保持连接请求的等待客户数量),创建服务器套接字并将其绑定到指定的本地端口号。
ServerSocket(int port, int backlog, InetAddress bindAddr):使用指定的端口、侦听 backlog 和要绑定到的本地 IP 地址创建服务器。
//1,建立tcp的客户端socket服务。在建立对象时,就要指定要连接的目的地址和端口。
Socket s = new Socket("192.168.1.253",9003);
//2,通过建立的socket对象获取socket中的输出流。调用getOutputStream方法。
OutputStream out = s.getOutputStream();
out.write("gemen,tcp lai la!".getBytes());
s.close();
//1,建立服务端的tcp socket服务。必须要监听一个端口。
ServerSocket ss = new ServerSocket(9003);
//2,通过服务端的socket对象的accept方法获取连接上的客户端对象
//因为要使用获取到的客户端对象的socket流和客户端进行通讯。
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+".....connected");
//获取客户端对象的读取流,读取数据。
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
String str = new String(buf,0,len);
System.out.println(str);
s.close();
ss.close();
}
package com.csdn.hbsi;
/*
客户端通过键盘录入数据,发送到服务端,
服务端接收到数据后,转换成大写在返回给客户端。
出现服务端或者客户端等待的情况。
原因:
因为客户端和服务端中的都有阻塞式方法。
read, readLine, accept,
*/
import java.net.*;
import java.io.*;
class TranseClient
{
public static void main(String[] args) throws Exception
{
Socket s = new Socket("192.168.49.110",9004);
//1,获取键盘录入。
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
//2,建立数据输出给服务端。
OutputStream out = s.getOutputStream();
BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(out));
//获取服务端返回的数据,将socket的InputStream进行包装。
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = null;
while((line=bufr.readLine())!=null)
{
if("over".equals(line))
break;
bufOut.write(line);
bufOut.newLine();
bufOut.flush();
String str = bufIn.readLine();
System.out.println("server:"+str);
}
bufr.close();
s.close();
}
}
class TranseServer
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(9004);
Socket s = ss.accept();
InputStream in = s.getInputStream();
BufferedReader bufIn = new BufferedReader(new InputStreamReader(in));
String line = null;
BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
while((line=bufIn.readLine())!=null)
{
System.out.println("client:"+line);
bufOut.write(line.toUpperCase());
bufOut.newLine();
bufOut.flush();
}
s.close();
ss.close();
}
}
网络编程之TCP协议与UDP对比相关推荐
- java网络编程之TCP通讯
java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, 1 /* 2 *TCP 3 *建立连接,形成传输数据的通道: 4 *在连接中进行大数据量传输: ...
- Java网络编程之TCP、UDP
Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. J ...
- Python中的网络编程之TCP
Python中的网络编程之TCP 文章目录 Python中的网络编程之TCP 1.TCP介绍 2.TCP特点 3.TCP与UDP的不同点 4.tcp通信模型 5.tcp客户端 6.tcp服务器 7.T ...
- Centos网络编程之tcp十一种状态及问题处理办法
尊重原创版权: https://www.noveljp.com/hot/43730.html 更多内容参考: https://www.noveljp.com/ Linux网络编程之tcp十一种状态及问 ...
- 网络编程之TCP客户端程序开发
网络编程之TCP客户端程序开发 1. 开发 TCP 客户端程序开发步骤 2. socket 类的介绍 3. TCP 客户端程序开发示例代码 4. 小结 1. 开发 TCP 客户端程序开发步骤 创建客户 ...
- java 网络编程简单聊天_网络编程之 TCP 实现简单聊天
网络编程之 TCP 实现简单聊天 客户端 1.连接服务器 Socket 2.发送消息 package lesson02;import java.io.IOException;import java.i ...
- Linux网络编程之TCP状态转移
Linux网络编程之TCP状态转移 一.TCP状态转移时序 二.半关闭及shutdown函数 一.TCP状态转移时序 TCP状态转移图: netstat -apn | grep client 查看客户 ...
- Python编程(01)----网络编程之TCP/IP/UDP/Port等知识讲解
一.首先明白什么是 UDP/TCP 1) 相同(目的一致):都是要完成PC之间的通信. 2) 不同: TCP:优点:可靠----TCP在传递数据之前,会有三次握手和四次挥手来建立连接和关闭连接.数据传 ...
- 网络编程之Tcp,udp
1.TCP 2.补充异常处理 3.UDP 一TCP. 1.socket基础版本通讯 服务端: 1 import socket 2 3 server = socket.socket()# 生成一个对象 ...
最新文章
- Hibernate是啥?
- linux替换每个英文字开头为大写,shell脚本,文件里面的英文大小写替换方法。...
- 全球及中国水刀机械行业发展态势及及投资决策建议报告2021年版
- 运维监控工具之 Nagios 客户端安装(二)
- Mahout kmeans聚类
- python socket服务器_记-python socket服务器端四部曲
- MySql视图view的使用:创建、修改、删除
- matlab veristand,amesim Veristand matlab
- 人生中10件无能为力的事
- 51CTO博客改版日记(目录) 2006年 by小废
- CPC客户端离线升级失败,不能获取updatesipo信息,可能你的软件在线更新程序没有安装
- 基于樽海鞘群算法的线性规划求解matlab程序
- 主流七款web服务器软件点评,几款比较好的WEB服务器软件推荐
- wps怎么只删除本页的页眉_WPS如何删除文件中某一页的页眉
- activiti7的流程图、模板图及子流程图展示
- 个人必备google搜索技巧
- JAVA-获取无限循环小数的循环节
- CHM文件打不开或者提示的解决办法
- ArcGIS使用(二)ArcGIS加载天地图
- STM32 CUBEIDE MacOS首次使用笔记
热门文章
- Redis 集群原理,再也不怕面试被问倒
- 通信原理——MIMO
- Mac安装Git,并直接替换系统Git
- 读书:习惯的力量-([美]杰克•霍吉)
- <<视觉问答>>2021:Learning Compositional Representation for Few-shot Visual Question Answering
- 东芝推出有刷直流电机驱动器IC系列产品TB67H450FNG
- csdn博客文章首行缩进两个字符的方法
- 压缩的原理和压缩软件的原理
- 成为会带团队的技术人 稳定性(一):如何应对事故并做好复盘?
- 打开我的计算机页面很卡,xp系统打开我的电脑很卡的解决方法