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传输协议的更多相关文章

  1. java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端

    java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端 启动界面如下图: 首先启动服务器: 客户端登陆,登陆成功后为: 默认发送是全部用户,是多人发送. 当在边列 ...

  2. Java中的UDP协议编程

    一. UDP协议定义   UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.UDP有不提供数据报分组.组装和不能对数据包 ...

  3. C# WCF学习笔记(二)终结点地址与WCF寻址(Endpoint Address and WCF Addressing) WCF中的传输协议

    URI的全称是 Uniform Rosource Identifire(统一资源标识),它唯一标识一个确定的网绐资源,同时也表示资源所处的位置及访问的方式(资源访问所用的网络协议). 对于Endpoi ...

  4. java中TCP总结

    先看一张图,画的很挫,将就看. TCP 客户端与服务端通信时,是服务端会拿到客户端的socket进行通信. TCP就相当于以前的座机,有一个听筒和一个话筒,A用话筒说话,B用听筒听. 下面讲讲java ...

  5. TCP传输协议使用

    TCP传输协议,也称之为套接字连接,比较安全,三次握手!,必须确保对方计算机存在,才能连接,而且是长时间连接. 缺点是传输速度有点慢. 你用 socket 去连接 ServiceSocaket 服务器 ...

  6. TCP传输协议中如何解决丢包问题

    TCP在不可靠的网络上实现可靠的传输,必然会有丢包.TCP是一个“流”协议,一个详细的包将会被TCP拆分为好几个包上传,也是将会把小的封裝成大的上传,这就是说TCP粘包和拆包难题. 但是许多人有不同的 ...

  7. 在java中使用SFTP协议安全的传输文件

    本文介绍在Java中如何使用基于SSH的文件传输协议(SFTP)将文件从本地上传到远程服务器,或者将文件在两个服务器之间安全的传输.我们先来了解一下这几个协议 SSH 是较可靠,专为远程登录会话和其他 ...

  8. 聊聊iOS中TCP / UDP 协议

    TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于 传输层协议. UDP(User Datagram protoco ...

  9. 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)

    1.什么是UDP协议? UDP( User Datagram Protocol )协议是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层. ...

随机推荐

  1. Java排序之直接选择排序

    public class SelectSort { public static void selectSort(int [] a){ int min; int temp; if(a==null || ...

  2. powershell输出错误信息到文件

    https://stackoverflow.com/questions/8925323/redirection-of-standard-and-error-output-appending-to-th ...

  3. Pascal Script

    MsgBox http://www.jrsoftware.org/ishelp/index.php?topic=isxfunc_msgbox ExpandConstant http://www.jrs ...

  4. String build-in function - len

    len is a build-in function that returns the numbers of characters in a string: Since we started coun ...

  5. <Sicily>数字反转

    一.题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 二.输入 输入共 1 行, ...

  6. Web开发、原生开发、混合开发的区别优势:

    一.Web 应用 Web应用本质上是为移动浏览器设计的基于Web的应用,它们是用普通Web开发语言开发的,可以在各种智能手机浏览器上运行. 优点: 支持设备广泛: 较低的开发成本: 可即时上线: 无内 ...

  7. webpack的理解

    webpack是一个模块打包工具,你可以使用webpack管理你的模块依赖,并编译输出模块们所需要的静态文件.它能够很好的管理.打包Web开发中所用到的HTML.Javascript.CSS以及各种静 ...

  8. vue引入iconfont阿里字体图标库以及报错解决

    下载阿里的字体图标库文件,放在\src\assets\font文件夹下面. 安装style-loader,css-loader和file-loader (或url-loader)  ,记得--save ...

  9. 测试cnblog文章内部JS

    添加几个按钮 行内js 写法: <button onclick="javascript:alert('行内js')">行内js</button> 注意:al ...

  10. php异常处理的深入

    引出 如果你调一个类,调用时数据验证时报了个错,你会以什么方式返回 数组,布尔值? 数组这个可以带错误原因回来,那布尔值呢? 返回了个 false, 报错时把错误放在类变量里?还是专门用一个获取错误的 ...