- 浏览: 711212 次
- 来自: ...
文章分类
最新评论
-
ranguisheng:
可以加点注释,代码不便于阅读.
用java实现数据库连接池的一个简单示例 -
abcd880129:
这样写的话,还要用专门的下载工具,不然,只能下到一个为空的ex ...
ZK下载文件时,不在服务器生成文件直接下载 -
234369425:
同上,是20
java计算阶乘 -
CodeToMyLaw:
如果目录中含有中文呢?
[^\x00-\xff] 中文的 ...
js验证文件目录格式的正确性 -
yanzhoupuzhang:
加了,还是报那个错误!
org.apache.commons.dbcp.BasicDataSource的解决方法
转载:http://hi.baidu.com/triceratops/blog
Server端代码(支持多个客户端同时访问,端口号为516): ================================================= import java.net.*; import java.io.*; import java.util.*; public class Server extends Thread{ private ServerSocket serverSocket; private Socket serverEndPoint; private InputStream in; private OutputStream out; public Server(){ } private Server(Socket serverEndPoint){ this.serverEndPoint = serverEndPoint; } public void startService(int port) throws IOException,InterruptedException{ System.out.println("service started..."); serverSocket = new ServerSocket(port); while (true) new Server(serverSocket.accept()).start(); } public void run(){ try{ in = serverEndPoint.getInputStream(); out = serverEndPoint.getOutputStream(); DataInputStream dis = new DataInputStream(in); DataOutputStream dos = new DataOutputStream(out); String request; while(true){ if((request = dis.readUTF())!=null){ if(request.trim().equals("bye")|| request.trim().equals("exit")|| request.trim().equals("quit")) break; System.out.println(serverEndPoint.getInetAddress().getCanonicalHostName() + " is getting '" + request.trim()+"'......"); File f = new File(request.trim()); if(!f.exists()){ dos.writeBoolean(false); dos.writeUTF("File '"+f.getPath()+"' doesn't exist!"); continue; } if(f.isDirectory()){ dos.writeBoolean(false); dos.writeUTF("'"+f.getPath()+"' is a folder!"); continue; } FileInputStream fis = new FileInputStream(f); int i; int count = 0; byte[] buf = new byte[1024]; dos.writeBoolean(true); dos.writeLong(f.length()); while((i=fis.read(buf))!=-1) { dos.write(buf, 0, i); count+=i; } fis.close(); Thread.sleep(1000); dos.writeUTF("File '"+f.getName()+"' has been saved in the current folder."); } } System.out.println("Connection to "+serverEndPoint.getInetAddress().getCanonicalHostName()+" is ready to close......"); Thread.sleep(5000); dis.close(); dos.close(); serverEndPoint.close(); } catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args){ try{ new Server().startService(516); } catch(Exception e){ e.printStackTrace(); } } } ================================================= Client端代码: ================================================= import java.net.*; import java.io.*; public class Client{ private Socket clientEndPoint; private InputStream in; private OutputStream out; public void connectToService()throws IOException,InterruptedException{ clientEndPoint = new Socket("192.168.4.60",516); in = clientEndPoint.getInputStream(); out = clientEndPoint.getOutputStream(); DataInputStream dis = new DataInputStream(in); DataOutputStream dos = new DataOutputStream(out); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Server is ready. Please type in file to get: "); String request; while(true){ System.out.print("Get: "); request = br.readLine()+"\r\n"; dos.writeUTF(request); if(request.trim().equals("bye")|| request.trim().equals("exit")|| request.trim().equals("quit")) break; while(true){ if(in!=null){ System.out.println("Getting file(s)......"); int i; long count = 0; boolean fileExist = dis.readBoolean(); if(fileExist){ File f = getTargetFile(request.trim()); FileOutputStream fos = new FileOutputStream(f); long fileLength = dis.readLong(); byte[] buf = new byte[1024]; System.out.println(fileLength); while(true) { i = dis.read(buf,0,1024); fos.write(buf, 0, i); count+=i; if(count >= fileLength){ break; } } fos.close(); } break; } } System.out.println(dis.readUTF()); } System.out.println("Client ready to close......"); Thread.sleep(5000); dis.close(); dos.close(); clientEndPoint.close(); } private File getTargetFile(String path) { path = path.replace("/","\\"); path = path.substring(path.lastIndexOf("\\")+1); return new File(path); } public static void main(String[] args){ try{ new Client().connectToService(); } catch(Exception e){ e.printStackTrace(); } } }
发表评论
-
Json,Gson,FastJson解析笔记
2015-06-13 17:31 933Json 1.将JavaBean转换成Json对象: pu ... -
String与InputStream互转的几种方法
2015-06-13 17:24 759/** * 利用BufferedReader ... -
Java压缩图片
2015-06-06 15:49 1119package com.yipai.ut ... -
HashMap的工作原理
2013-11-18 22:58 871本文由 ImportNew - 唐小娟 翻译自 Javarev ... -
一道多线程题目的解决方案
2013-08-03 17:24 827在iteye上看到的一道多线程的题目,参考了一下网友的实现,那 ... -
java socket 多线程网络传输多个文件
2013-06-25 14:57 883由于需要研究了下用 java socket 传输文件,由于需要 ... -
处理大数字
2011-04-30 13:40 1017/** * 处理大数字 * & ... -
生成随机数
2011-04-30 13:39 1243/** * 生成随机数 */ public cl ... -
转换数字的进制
2011-04-30 13:38 1323/** * * 转换数字的进制 */ pu ... -
数字的舍入
2011-04-30 13:37 1110/** * 数字的舍入 * */ publi ... -
格式化数字
2011-04-30 13:36 1170/** * 格式化数字的输出 * */ pu ... -
数字与其封装类之间的转换
2011-04-30 13:16 852/** * * 数字与其封装类之间的转换 * ... -
Adapter适配器模式
2011-04-24 21:38 881/** * Adapter适配器模式<br> ... -
Factory工厂模式
2011-04-24 21:36 908/** * 模式名称:工厂模式 * 模式特征:通过 ... -
Singleton单例模式
2011-04-24 21:35 1002public class SingletonA { ... -
排序类
2011-04-24 20:38 1018/** * 定义数字排序的 ... -
方法和变量在继承时的覆盖与隐藏
2011-04-24 20:30 979public class Parent2 { // ... -
类的加载顺序
2011-04-24 20:27 866/** * 父类 * */ public ... -
自定义形状类(继承的运用)
2011-04-10 17:18 1134/** * * 自定义图形的基类 */ p ... -
myeclipse8.6 注册码
2011-04-10 14:17 1173package com.springemail; i ...
相关推荐
10. **安全性**:考虑到网络安全,可以使用SSL/TLS协议对Socket通信进行加密,保证数据的安全传输。Java和.NET都提供了相应的API支持。 示例代码: 在Java中,简单的Server端代码如下: ```java import java.net....
Java Socket实现的点对点(P2P)文件传输是一个涉及网络编程、Java I/O以及多线程的重要技术。在Java中,Socket是基于TCP协议的网络通信接口,提供了两台计算机之间稳定的数据交换能力。P2P网络,即对等网络,允许...
在Java中,通过`java.net.Socket`类来表示客户端,`java.net.ServerSocket`类来表示服务器端。本案例实现了基于TCP协议的Socket长连接,即客户端和服务端建立连接后,保持连接状态,进行多次数据交互而无需频繁建立...
以上就是使用Java Socket编程实现文件上传涉及到的主要知识点,包括Socket通信机制、文件I/O、数据库操作、异常处理、多线程、安全性和性能优化等方面。理解并掌握这些内容,对于开发高效、可靠的文件上传系统至关...
Java Socket实现的简单点对点聊天软件是一种基于网络通信的C/S(客户端/服务器)架构的应用。在这个系统中,服务器端作为一个中央节点,接收并转发客户端之间的消息,而客户端则负责用户交互,发送和接收聊天内容。...
总的来说,这个用Java编写的TCP Socket点对点聊天程序是一个很好的学习资源,涵盖了网络编程基础、并发处理和异常处理等多个重要知识点。通过实际操作,学习者不仅可以掌握TCP通信的原理,还能提高Java编程技巧,为...
3. **java.net.SocketException: Socket is closed** 当Socket主动关闭后,尝试进行读写操作时,会出现这个异常。为避免此类问题,确保在完成通信后正确关闭Socket,并在处理Socket对象时检查其状态。 4. **java...
在Java中,我们可以使用`java.io`和`java.nio`包下的类来实现文件的比较。例如,`java.io.File`类可以获取文件的基本信息,通过比较文件大小和修改时间进行初步判断。对于内容比较,可以使用`java.nio.file.Files`...
在点对点传输中,这些类用于读取发送端的文件并写入接收端。 4. **多线程**: 为了实现并发的文件传输,Java的`Thread`类和`Runnable`接口非常关键。每个文件传输可以作为一个独立的线程运行,这样可以同时处理多...
这个"JAVA文件传输(文档+源代码).zip"压缩包很可能是为了教学或实践目的,包含了相关的文档和源代码,帮助学习者理解如何在Java环境中实现文件的上传和下载功能。以下是基于这一主题的详细知识点: 1. **Java I/O流...
// 读取文件并写入输出流,实现文件传输 } catch (IOException e) { e.printStackTrace(); } finally { try { socket.close(); // 关闭连接 } catch (IOException e) { e.printStackTrace(); } } } } } ...
1. **Socket编程**:Java提供了`java.net.Socket`和`java.net.ServerSocket`类来实现基于TCP协议的网络通信。Socket是网络通信的基本单元,ServerSocket用于监听客户端的连接请求,而Socket则用于建立客户端和服务器...
在Java中,`java.net.Socket`和`java.net.ServerSocket`类是实现这一功能的核心。`ServerSocket`用于监听客户端的连接请求,而`Socket`则用于建立实际的连接并进行数据传输。 1. **点对点单人聊天**:在P2P系统中,...
Java的`java.net.Socket`和`java.net.ServerSocket`类提供了基于TCP的网络通信功能。客户端通过`Socket`类建立到服务器的连接,服务器端则通过`ServerSocket`监听并接受连接请求。 3. 基于UDP的网络程序设计:UDP...
在Java中,`java.net.Socket`类和`java.net.ServerSocket`类用于实现TCP Socket编程。`Socket`类用于客户端,创建连接到服务器的套接字;`ServerSocket`类用于服务器端,监听并接受来自客户端的连接请求。 接下来,...
9. **FTP和SMTP**:Java还提供了`java.net`包下的`FTPClient`和`SMTPClient`接口,用于FTP文件传输和电子邮件发送。 10. **网络安全**:Java安全模型提供了处理网络安全问题的框架,如SSL/TLS加密、数字证书、权限...
在局域网环境中,用户可以通过输入对方的IP地址,实现点对点的聊天。由于局域网内的设备可以互相访问,因此这种通信方式在本地网络中尤为适用。 总结来说,这个Java套接字聊天工具展示了如何利用Java的网络编程API...
在Java中,`java.net.Socket`类和`ServerSocket`类是实现Socket通信的核心。Socket允许应用程序通过TCP/IP协议发送和接收数据,为客户端和服务器之间建立连接。 2. **Thread**:在Java中,多线程是并行执行任务的...
Java Socket编程是网络编程中的重要一环,常用于实现...总的来说,Java Socket聊天并传输文件涉及了网络编程基础、Java IO、多线程等多个知识点,通过实践这样的项目,可以加深对这些概念的理解,并提升实际开发能力。
在这个“Socket文件传输源码”中,我们很显然会看到如何使用Java的Socket类来实现在两个应用程序之间传输文件。以下是对这个主题的详细说明: 首先,我们要了解Socket的基本概念。Socket在计算机网络中扮演着桥梁的...