//客户端:
package com.socket.example;
import java.io.*;
import java.net.*;
import java.util.TimerTask;
/**
*
* @author li_yf
* RemoteFileClient
*
*/
public class RemoteFileClient extends TimerTask {
protected String hostIp;
protected int hostPort;
protected BufferedReader socketReader;
protected PrintWriter socketWriter;
public RemoteFileClient(String aHostIp, int aHostPort) {
hostIp = aHostIp;
hostPort = aHostPort;
}
public void setUpConnection() {
try {
Socket client = new Socket(hostIp, hostPort);
socketReader = new BufferedReader(new InputStreamReader(client
.getInputStream()));
socketWriter = new PrintWriter(client.getOutputStream(),true);
} catch (UnknownHostException e) {
System.out
.println("Error setting up socket connection: unknown host at "
+ hostIp + ":" + hostPort);
} catch (IOException e) {
System.out.println("Error setting up socket connection: " + e);
}
}
public String getFile(String fileNameToGet) {
StringBuffer fileLines = new StringBuffer();
try {
socketWriter.println(fileNameToGet);
socketWriter.flush();
String line = null;
while ((line = socketReader.readLine()) != null)
fileLines.append(line + "\n");
} catch (IOException e) {
System.out.println("Error reading from file: " + fileNameToGet);
}
return fileLines.toString();
}
public void tearDownConnection() {
try {
socketWriter.close();
socketReader.close();
} catch (IOException e) {
System.out.println("Error tearing down socket connection: " + e);
}
}
@Override
public void run() {
// TODO Auto-generated method stub
RemoteFileClient remoteFileClient = new RemoteFileClient("192.168.0.6",
139);
remoteFileClient.setUpConnection();
String fileContents = remoteFileClient.getFile("E:\\RemoteFile.txt");
remoteFileClient.tearDownConnection();
//String name=new String ((fileContents.getBytes("iso-8859-1"),);
System.out.println("读取的远程内容:"+fileContents);
}
}
//服务器端:
package com.socket.example;
import java.io.*;
import java.net.*;
/**
*
* @author li_yf
* RemoteFileServer
*
*/
public class RemoteFileServer {
protected int listenPort = 139;
public static void main(String[] args) {
RemoteFileServer server = new RemoteFileServer();
server.acceptConnections();
}
public void acceptConnections() {
try {
ServerSocket server = new ServerSocket(listenPort);
Socket incomingConnection = null;
while (true) {
incomingConnection = server.accept();
handleConnection(incomingConnection);
}
} catch (BindException e) {
System.out.println("Unable to bind to port " + listenPort);
} catch (IOException e) {
System.out.println("Unable to instantiate a ServerSocket on port: "
+ listenPort);
}
}
public void handleConnection(Socket incomingConnection) {
try {
OutputStream outputToSocket = incomingConnection.getOutputStream();
InputStream inputFromSocket = incomingConnection.getInputStream();
BufferedReader streamReader = new BufferedReader(
new InputStreamReader(inputFromSocket));
FileReader fileReader = new FileReader(new File(streamReader
.readLine()));
BufferedReader bufferedFileReader = new BufferedReader(fileReader);
PrintWriter streamWriter = new PrintWriter(incomingConnection
.getOutputStream());
String line = null;
while ((line = bufferedFileReader.readLine()) != null) {
streamWriter.println(line);
}
fileReader.close();
streamWriter.close();
streamReader.close();
} catch (Exception e) {
System.out.println("Error handling a client: " + e);
}
}
}
//main方法:
package com.socket.example;
import java.util.Timer;
public class TimerTaskClass {
private static int TIME_INTERVAL = 10 * 1000;
private static String SOCKET_SERVER = "192.168.0.6";
private static int SOCKET_PORT = 139;
public static void main(String args[]) {
Timer timer = new Timer();
timer.schedule(new RemoteFileClient(SOCKET_SERVER, SOCKET_PORT),
1 * 1000, TIME_INTERVAL);
}
}
分享到:
相关推荐
本项目“socket定时发送数据小程序”正是这样一个专注于通过定时器发送数据的应用。在这个程序中,我们利用了Socket接口来建立客户端与服务器端的连接,并通过定时器(Timer)实现周期性地发送数据。 首先,我们要...
Java Socket是Java编程语言中用于网络通信的核心API,它提供了低级别的、面向连接的、可靠的、基于字节流的通信。在这个"Java socket聊天室+窗口抖动"项目中,我们将探讨如何使用Java Socket构建一个基本的多人在线...
- **InputStream和OutputStream**:Socket提供两个流对象,InputStream用于读取数据,OutputStream用于写入数据。常用的子类如InputStreamReader和OutputStreamWriter可进行字符编码转换。 - **BufferedReader和...
客户端可能有一个Socket实例用于连接服务器,以及一个单独的线程用于读取服务器发送的数据,同时还有一个主线程用于处理用户输入并发送消息。 总的来说,这个Java Socket聊天软件项目涵盖了网络编程基础、并发处理...
Java Socket实现CMPP2.0是中国移动互联网短信网关...总的来说,Java Socket实现CMPP2.0涉及到网络通信、协议解析、数据编码解码等多个技术点。理解并掌握这些知识点,能有效帮助开发者构建稳定、高效的短信服务平台。
在IT行业中,Java Socket编程是网络通信的基础,广泛应用于各种网络服务,如文件传输、聊天应用、邮件发送等。SMTP(Simple Mail Transfer Protocol)是一种用于发送电子邮件的标准协议,而使用Java Socket来实现...
- 实现一个循环,不断读取`Socket`的输入流,当接收到心跳包时,返回一个确认响应。 2. **创建TCP客户端**: - 使用`java.net.Socket`类建立到服务器的连接,并打开一个输出流来发送心跳包。心跳包可以是一个简单...
在Java等编程语言中,我们可以使用Socket类来创建服务器端(ServerSocket)和客户端(Socket)。服务器端通常会创建一个ServerSocket,并绑定到特定的IP地址和端口号,然后调用其accept()方法开始监听连接请求。每当...
当一个客户端尝试连接时,服务器会创建一个新的Socket实例来处理这个连接,然后可以读取客户端发送的数据并响应。在聊天服务器的实现中,可能会用到`ServerSocket`类来创建监听端口,并用`accept()`方法等待客户端的...
本篇文章将详细探讨“socket链路层”,主要涉及Java中的Socket编程,包括如何创建Socket、实现心跳检测、定时接收数据、重连机制以及读取配置文件等核心知识点。 一、创建Socket 在Java中,Socket是基于TCP协议的...
总的来说,这个简单的聊天程序示例可以帮助初学者理解Java Socket与TCP协议的结合,以及如何通过网络进行数据交换。通过实际操作和调试,你可以更深入地掌握这些知识,并为后续的网络编程打下坚实的基础。
Java+Socket聊天室是一种基于Java编程语言和Socket通信协议实现的多用户交互系统。在这个系统中,用户可以通过客户端连接到服务器,与其他在线用户进行实时的文字聊天。Socket在计算机网络编程中扮演着重要的角色,...
3. **创建连接**:使用Java的Socket编程或SerialPort类(如果使用RXTX库进行串口通信)建立与考勤机的连接。 4. **发送与接收数据**:编写发送请求和解析响应的代码。这可能涉及XML或自定义格式的数据包,需要按照...
- **DownloadHis.java**:下载历史记录类,定时将下载信息写入磁盘,为断点续传提供基础数据支持。 - **DownloadMain.java**:下载主线程类,负责协调所有子线程的工作,包括任务分配、进度监控等。 - **...
心跳包的原理是客户端和服务端周期性地交换数据包,即使没有实际业务数据需要传输,也会发送一个空的数据包。如果一方在预设的时间内没有收到对方的心跳包,那么就可以认为网络连接可能已经断开,可以采取相应的恢复...
你可以使用Java的`javax.imageio.ImageIO`类来读取和写入图片。如果数据是Base64编码,需要先解码,再将其转换为二进制流,然后用ImageIO写入到文件。对于网络上的图像资源,可以使用`java.net.URL`和`java.net....
"建立连接后,通过输入输出流读取客户端发送的请求信息"意味着我们可以使用`Socket`的`InputStream`和`OutputStream`来处理数据传输。例如: ```java InputStream input = clientSocket.getInputStream(); ...
一旦连接建立,文件的传输可以通过输入输出流来实现,将本地文件的数据读取并发送到对方,接收方则通过接收流将数据写入到本地文件系统。 在描述中提到的".zip"文件,通常包含有该程序的源代码、编译后的类文件以及...
- [ ] socket client接受到请求数据的命令后,从mysql中读取假数据,伪造成真实设备传输的数据格式,并发送给socket server - [ ] socket server接收到返回的数据后,分别写入到hbase数据库和kafka队列中 - [ ] 最后...
2. 数据传输:使用输出流写入数据到Socket,然后通过输入流读取服务端的响应。 3. 关闭连接:通信完成后,记得关闭Socket以及输入输出流,释放资源。 三、服务端实现 1. 监听请求:服务器端使用`java.net....