Java使用TCP实现数据传输实例详解

TCP所提供服务的主要特点:
1.面向连接的传输;
2.端到端的通信;
3.高可靠性,确保传输数据的正确性,不出现丢失或乱序;
4.全双工方式传输;
5.采用字节流方式,即以字节为单位传输字节序列;
6.紧急数据传送功能。
TCP传输需要建立客户端和服务器端,即Socket和Server Socket , 建立连接后,通过Socket中的IO流进行数据的传输 。传输结束后关闭Socket。
客户端和服务器端是两个独立的应用程序。
以下是实现基本的TCP数据传输的Demo code:
package javase.day18;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TransTextDemo {
public static void main(String[] args) {
}
}
class TcpClient2{
public static void main(String[] args) throws Exception{
System.out.println("client start...");
Socket s = new Socket("192.168.1.2",10005);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String sendDataStr=null;
while((sendDataStr=br.readLine())!=null){
if(sendDataStr.equals("bye")){
break;
}
bw.write(sendDataStr);
bw.newLine();
bw.flush();
}
bw.close();
}
}
class TcpServer2{
public static void main(String[] args) throws Exception{
System.out.println("server start...");
ServerSocket ss = new ServerSocket(10005);
Socket s = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String receiveDataStr=null;
while((receiveDataStr=br.readLine())!=null){
if(receiveDataStr.equals("bye")){
break;
}
System.out.println("receive data:"+receiveDataStr);
}
}
}
使用TCP实现文本文件上传的Demo code:
package javase.day18;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class UploadText {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
class TextServer{
public static void main(String[] args) throws Exception{
System.out.println("Server start...");
ServerSocket ss = new ServerSocket(10008);
Socket s = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter out = new PrintWriter(new FileWriter("C:\\java_test\\server.txt"),true);
String line=null;
while((line=br.readLine())!=null){
System.out.println(line);
out.println(line);
}
PrintWriter pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()),true);
pw.println("upload successful");
pw.close();
s.close();
ss.close();
}
}
class TextClient{
public static void main(String[] args) throws Exception{
System.out.println("Client start...");
Socket clientSocket = new Socket("192.168.1.2",10008);
BufferedReader br = new BufferedReader(new FileReader("C:\\java_test\\SystemDemo.java"));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),true);
String line=null;
while((line=br.readLine())!=null){
System.out.println(line);
out.println(line);
}
clientSocket.shutdownOutput();
BufferedReader br2 = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String confirmMsgStr=br2.readLine();
System.out.println(confirmMsgStr);
br2.close();
clientSocket.close();
}
}
实现图片上传的Demo code:
package javase.day18;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class UploadImage {
public static void main(String[] args) {
}
}
class ImageClient{
public static void main(String[] args) throws Exception{
Socket imageClientSocket = new Socket("192.168.1.2",10010);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\java_test\\client\\生活用品01.jpg"));
BufferedOutputStream bos = new BufferedOutputStream(imageClientSocket.getOutputStream());
byte[] buf = new byte[1024*100];
int len = 0 ;
while((len=bis.read(buf))!=-1){
bos.write(buf,0,len);
}
imageClientSocket.shutdownOutput();
BufferedInputStream bis2 = new BufferedInputStream(imageClientSocket.getInputStream());
byte[] buf2 = new byte[1024];
int len2 = 0 ;
while((len2=bis2.read(buf2))!=-1){
System.out.println(new String(buf2,0,len2));
}
bis.close();
imageClientSocket.close();
}
}
class ImageServer{
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(10010);
Socket s = ss.accept();
BufferedInputStream bis = new BufferedInputStream(s.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\java_test\\server\\生活用品01.jpg"));
byte[] buf = new byte[1024*100];
int len = 0 ;
while((len=bis.read(buf))!=-1){
bos.write(buf, 0, len);
}
BufferedOutputStream bos2 = new BufferedOutputStream(s.getOutputStream());
bos2.write("upload successful".getBytes());
bos2.close();
s.close();
ss.close();
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java使用TCP实现数据传输
# java
# tcp传输
# 实现了基于TCP的Java Socket编程实例代码
# Java实现Socket的TCP传输实例
# Java基于Tcp协议的socket编程实例
# Java基于TCP方式的二进制文件传输
# Java编程实现多线程TCP服务器完整实例
# 基于java TCP网络通信的实例详解
# Java网络编程之TCP通信完整代码示例
# JAVA编程实现TCP网络通讯的方法示例
# Java面试基础之TCP连接以及其优化
# 生活用品
# 流进
# 客户端
# 希望能
# 所提供
# 谢谢大家
# 主要特点
# 即以
# 应用程序
# 图片上传
# 端到
# 文件上传
# 行数
# 高可靠性
# 全双工
# 结束后
# System
# Exception
# client
# println
相关文章:
如何配置IIS站点权限与局域网访问?
如何使用Golang table-driven基准测试_多组数据测量函数效率
,如何利用word制作宣传手册?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
建站主机选哪家性价比最高?
建站ABC备案流程中有哪些关键注意事项?
平台云上自主建站:模板化设计与智能工具打造高效网站
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
建站主机系统SEO优化与智能配置核心关键词操作指南
XML的“混合内容”是什么 怎么用DTD或XSD定义
湖北网站制作公司有哪些,湖北清能集团官网?
开封网站制作公司,网络用语开封是什么意思?
如何通过VPS建站实现广告与增值服务盈利?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何在云虚拟主机上快速搭建个人网站?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
专业公司网站制作公司,用什么语言做企业网站比较好?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何快速搭建高效服务器建站系统?
盐城做公司网站,江苏电子版退休证办理流程?
如何通过智能用户系统一键生成高效建站方案?
设计网站制作公司有哪些,制作网页教程?
招商网站制作流程,网站招商广告语?
如何获取PHP WAP自助建站系统源码?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何通过主机屋免费建站教程十分钟搭建网站?
如何基于云服务器快速搭建个人网站?
清除minerd进程的简单方法
建站之星官网登录失败?如何快速解决?
如何用好域名打造高点击率的自主建站?
如何彻底删除建站之星生成的Banner?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
测试制作网站有哪些,测试性取向的权威测试或者网站?
如何快速搭建高效可靠的建站解决方案?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
如何通过宝塔面板实现本地网站访问?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
如何快速生成ASP一键建站模板并优化安全性?
营销式网站制作方案,销售哪个网站招聘效果最好?
,怎么在广州志愿者网站注册?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
如何在万网ECS上快速搭建专属网站?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
css网站制作参考文献有哪些,易聊怎么注册?
*请认真填写需求信息,我们会在24小时内与您取得联系。