java中TCP传输协议
class TcpClient {
public static void main(String[] args) throws Exception {
//创建client的socket服务,指定目的主机和port
Socket s = new Socket("192.168.1.10",10003);
//为了发送数据。获取socket流中的输出流
java.io.OutputStream out = s.getOutputStream();
out.write("hello tcp".getBytes());
s.close();
}
}
class TcpServer {
public static void main(String[] args) throws Exception {
//建立服务端socket服务,并监听一个port
ServerSocket ss = new ServerSocket(10003);
//通过accept方法获取连接过来的client对象
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
//获取client发送过来的数据。使用client对象的读取流来读取数据
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
System.out.println(new String(buf,0,len));
//关闭client
s.close();
}
}
class TcpClient2 {
public static void main(String[] args) throws Exception {
//建立socket服务。指定连接的主机和port
Socket s = new Socket("192.168.1.10",10004);
//获取socket流中的输出流。将数据写入该流,通过网络传送给服务端
OutputStream out = (OutputStream) s.getOutputStream();
out.write("hello Tcp".getBytes());
//获取socket流中的输入流。将服务端反馈的数据获取到,并打印
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
System.out.println(new String(buf,0,len));
s.close();
}
}
class TcpServer2 {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(10004);
Socket s = ss.accept();
//服务端收信息
InputStream in = s.getInputStream();
String ip = s.getInetAddress().getHostAddress();
byte[] buf = new byte[1024];
int len = in.read(buf);
System.out.println(new String(buf,0,len));
//服务端发信息
OutputStream out = (OutputStream) s.getOutputStream();
out.write("have receive".getBytes());
s.close();
ss.close();
}
}
/*需求:建立一个文本转换服务器
client给服务端发送文本,服务端会将文本转成大写再返还给client*/
class TcpClient3 {
public static void main(String[] args) throws Exception {
Socket s = new Socket("192.168.1.4",10005);
//定义读取键盘数据的流对象,读取键盘录入文本
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()));
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 TcpServer3 {
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) {
bufOut.write(line.toUpperCase());
bufOut.newLine();//结束标记
bufOut.flush();
}
s.close();
ss.close();
}
}
java中TCP传输协议的更多相关文章
- java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端
java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端 启动界面如下图: 首先启动服务器: 客户端登陆,登陆成功后为: 默认发送是全部用户,是多人发送. 当在边列 ...
- Java中的UDP协议编程
一. UDP协议定义 UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.UDP有不提供数据报分组.组装和不能对数据包 ...
- C# WCF学习笔记(二)终结点地址与WCF寻址(Endpoint Address and WCF Addressing) WCF中的传输协议
URI的全称是 Uniform Rosource Identifire(统一资源标识),它唯一标识一个确定的网绐资源,同时也表示资源所处的位置及访问的方式(资源访问所用的网络协议). 对于Endpoi ...
- java中TCP总结
先看一张图,画的很挫,将就看. TCP 客户端与服务端通信时,是服务端会拿到客户端的socket进行通信. TCP就相当于以前的座机,有一个听筒和一个话筒,A用话筒说话,B用听筒听. 下面讲讲java ...
- TCP传输协议使用
TCP传输协议,也称之为套接字连接,比较安全,三次握手!,必须确保对方计算机存在,才能连接,而且是长时间连接. 缺点是传输速度有点慢. 你用 socket 去连接 ServiceSocaket 服务器 ...
- TCP传输协议中如何解决丢包问题
TCP在不可靠的网络上实现可靠的传输,必然会有丢包.TCP是一个“流”协议,一个详细的包将会被TCP拆分为好几个包上传,也是将会把小的封裝成大的上传,这就是说TCP粘包和拆包难题. 但是许多人有不同的 ...
- 在java中使用SFTP协议安全的传输文件
本文介绍在Java中如何使用基于SSH的文件传输协议(SFTP)将文件从本地上传到远程服务器,或者将文件在两个服务器之间安全的传输.我们先来了解一下这几个协议 SSH 是较可靠,专为远程登录会话和其他 ...
- 聊聊iOS中TCP / UDP 协议
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于 传输层协议. UDP(User Datagram protoco ...
- 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)
1.什么是UDP协议? UDP( User Datagram Protocol )协议是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层. ...
随机推荐
- 使用iOS原生sqlite3框架对sqlite数据库进行操作
摘要: iOS中sqlite3框架可以很好的对sqlite数据库进行支持,通过面向对象的封装,可以更易于开发者使用. 使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言 sqlit ...
- jzoj1495 宝石 解题报告[扫描线]
Description 见上帝动了恻隐之心,天后也想显示一下慈悲之怀,随即从口袋中取出一块魔术方巾,让身边的美神维纳斯拿到后堂的屏风上去试试,屏风是正方形的,高和宽方向上各划有m条鱼屏风的边平行的直线 ...
- AvtiveMQ 参考
推荐学习:https://www.cnblogs.com/zhuxiaojie/p/5564187.html#autoid-2-1-0
- 将ubuntu安装在用剩下的硬盘改装成的移动硬盘时遇到的问题及解决办法
安装时分完盘后提示:“分配到/的分区开始于3584字节,使用磁盘的最小对齐,这可能造成非常差的性能..." 解决办法: 回到windows使用分区助手等工具先分好盘而不是在安装时分盘(这样分 ...
- package & import
/* * package:声明源文件所在的包,写在程序的第一行. * 每“.”一次,表示一层文件目录. * 包名都要小写. * * import: * 1)显式导入指定包下的类或接口 * 2)写在包的 ...
- AngularJs轻松入门(六)表单校验
表单数据的校验对于提高WEB安全性意义不大,因为服务器接收到的请求不一定来自我们的前端页面,有可能来自别的站点,黑客可以自己做一个表单,把数据提交到我们的服务器(即跨站伪造请求),这样就绕过了前端页面 ...
- 002.ES2015和ES2016新特性--箭头函数.md
1. ES2015中的箭头函数 JavaScript有一级函数的特性,也就是说,函数像其他值一样可以当成参数传来传去. var result = [1,2,3].reduce(function(tot ...
- codeforces 540 B School Marks【贪心】
题意:一共n个数,给出其中k个数,要求这n个数的中位数为y,这n个数的和不超过x,补全剩下的n-k个数 先统计给出的k个数里面比中位数小的数, 如果cnt<=n/2,说明中位数还没有出现,把这n ...
- pip命令使用方法 与 错误处理
这里把学习到的pip命令写一个汇总,方便想不起来时使用 通过cmd输入pip可以显示提示信息,中文翻译如下: 1)显示某个包的信息 pip show selenium #显示selenium模块的信息 ...
- etTimeout来实现setInterval
etTimeout来实现setInterval <script type="text/javascript"> function interval(func, w, t ...