网络编程之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对比相关推荐

  1. java网络编程之TCP通讯

    java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, 1 /* 2 *TCP 3 *建立连接,形成传输数据的通道: 4 *在连接中进行大数据量传输: ...

  2. Java网络编程之TCP、UDP

    Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. J ...

  3. Python中的网络编程之TCP

    Python中的网络编程之TCP 文章目录 Python中的网络编程之TCP 1.TCP介绍 2.TCP特点 3.TCP与UDP的不同点 4.tcp通信模型 5.tcp客户端 6.tcp服务器 7.T ...

  4. Centos网络编程之tcp十一种状态及问题处理办法

    尊重原创版权: https://www.noveljp.com/hot/43730.html 更多内容参考: https://www.noveljp.com/ Linux网络编程之tcp十一种状态及问 ...

  5. 网络编程之TCP客户端程序开发

    网络编程之TCP客户端程序开发 1. 开发 TCP 客户端程序开发步骤 2. socket 类的介绍 3. TCP 客户端程序开发示例代码 4. 小结 1. 开发 TCP 客户端程序开发步骤 创建客户 ...

  6. java 网络编程简单聊天_网络编程之 TCP 实现简单聊天

    网络编程之 TCP 实现简单聊天 客户端 1.连接服务器 Socket 2.发送消息 package lesson02;import java.io.IOException;import java.i ...

  7. Linux网络编程之TCP状态转移

    Linux网络编程之TCP状态转移 一.TCP状态转移时序 二.半关闭及shutdown函数 一.TCP状态转移时序 TCP状态转移图: netstat -apn | grep client 查看客户 ...

  8. Python编程(01)----网络编程之TCP/IP/UDP/Port等知识讲解

    一.首先明白什么是 UDP/TCP 1) 相同(目的一致):都是要完成PC之间的通信. 2) 不同: TCP:优点:可靠----TCP在传递数据之前,会有三次握手和四次挥手来建立连接和关闭连接.数据传 ...

  9. 网络编程之Tcp,udp

    1.TCP 2.补充异常处理 3.UDP 一TCP. 1.socket基础版本通讯 服务端: 1 import socket 2 3 server = socket.socket()# 生成一个对象 ...

最新文章

  1. Hibernate是啥?
  2. linux替换每个英文字开头为大写,shell脚本,文件里面的英文大小写替换方法。...
  3. 全球及中国水刀机械行业发展态势及及投资决策建议报告2021年版
  4. 运维监控工具之 Nagios 客户端安装(二)
  5. Mahout kmeans聚类
  6. python socket服务器_记-python socket服务器端四部曲
  7. MySql视图view的使用:创建、修改、删除
  8. matlab veristand,amesim Veristand matlab
  9. 人生中10件无能为力的事
  10. 51CTO博客改版日记(目录) 2006年 by小废
  11. CPC客户端离线升级失败,不能获取updatesipo信息,可能你的软件在线更新程序没有安装
  12. 基于樽海鞘群算法的线性规划求解matlab程序
  13. 主流七款web服务器软件点评,几款比较好的WEB服务器软件推荐
  14. wps怎么只删除本页的页眉_WPS如何删除文件中某一页的页眉
  15. activiti7的流程图、模板图及子流程图展示
  16. 个人必备google搜索技巧
  17. JAVA-获取无限循环小数的循环节
  18. CHM文件打不开或者提示的解决办法
  19. ArcGIS使用(二)ArcGIS加载天地图
  20. STM32 CUBEIDE MacOS首次使用笔记

热门文章

  1. Redis 集群原理,再也不怕面试被问倒
  2. 通信原理——MIMO
  3. Mac安装Git,并直接替换系统Git
  4. 读书:习惯的力量-([美]杰克•霍吉)
  5. <<视觉问答>>2021:Learning Compositional Representation for Few-shot Visual Question Answering
  6. 东芝推出有刷直流电机驱动器IC系列产品TB67H450FNG
  7. csdn博客文章首行缩进两个字符的方法
  8. 压缩的原理和压缩软件的原理
  9. 成为会带团队的技术人 稳定性(一):如何应对事故并做好复盘?
  10. 打开我的计算机页面很卡,xp系统打开我的电脑很卡的解决方法