/**
* 数据包内容解析
*
* @author HongSoft
*/
public class PacketParserThread extends Thread
{
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public PacketParserThread(Socket s) throws IOException
{
socket = s;
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket
.getOutputStream())), true);
start();
}
public void run()
{
try
{
String str = in.readLine();
if (str == null || str.length() == 0)
{
// do nothing
}
else
{
doParse(str,out);
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 中间全部用ox1e分割
* @param str
* @param out
*/
public static void doParse(String str,PrintWriter out)
{
String[] strs=str.split("\0x1e");
if("0".equals(strs[0]))//读主题贴
{
int forumId=Integer.parseInt(strs[1]);
int topicId=Integer.parseInt(strs[2]);
out.println(ForumFileOperator.getTopicContent(forumId,topicId));
}
else if("1".equals(strs[0]))//读回帖
{
int forumId=Integer.parseInt(strs[1]);
int topicId=Integer.parseInt(strs[2]);
List list=ForumFileOperator.getReplyList(forumId,topicId);
//在这里进行写出工作
Iterator it=list.iterator();
while(it.hasNext())
{
out.println(it.next().toString());
}
}
else if("2".equals(strs[0]))//发帖
{
int forumId=Integer.parseInt(strs[1]);
int topicId=Integer.parseInt(strs[2]);
ForumFileOperator.addTopic(forumId,topicId,strs[3]);
}
else if("3".equals(strs[0]))//续帖
{
int forumId=Integer.parseInt(strs[1]);
int topicId=Integer.parseInt(strs[2]);
ForumFileOperator.resumeTopic(forumId,topicId,strs[3]);
}
else if("4".equals(strs[0]))//回帖
{
int forumId=Integer.parseInt(strs[1]);
int topicId=Integer.parseInt(strs[2]);
ForumFileOperator.addReply(forumId,topicId,strs[3],strs[4],strs[5]);
}
else if("5".equals(strs[0]))//删主题贴
{
int forumId=Integer.parseInt(strs[1]);
int topicId=Integer.parseInt(strs[2]);
ForumFileOperator.deleteTopic(forumId,topicId);
}
else if("6".equals(strs[0]))//删回贴中的某一个
{
int forumId=Integer.parseInt(strs[1]);
int topicId=Integer.parseInt(strs[2]);
int replyId=Integer.parseInt(strs[3]);
ForumFileOperator.deleteReply(forumId,topicId,replyId);
}
}
}
分享到:
相关推荐
在这个场景中,我们讨论的是如何使用Java的Socket来实现文件上传功能,即从客户端将文件发送到服务器,然后保存到服务器的数据库中。这个过程涉及到多个关键知识点,下面我们将详细探讨。 1. **Java Socket基础**:...
本文将深入探讨如何利用socket在C语言中实现客户端与服务器之间的文件传输。 首先,我们需要了解socket的基本概念。Socket是操作系统提供的一种进程间通信(IPC)机制,它允许不同计算机或同一计算机内的不同进程...
总的来说,"SOCKET TCP 文件传输 客户端 服务器端 client svever"这个项目旨在教授如何利用TCP协议实现文件的可靠传输,这对于理解网络编程和提升实际应用技能非常有价值。通过深入学习和实践,开发者可以更好地掌握...
基于TCP socket实现的支持报文解析并返回响应报文的Web服务器,可以响应多种文件需求并能够处理特定的错误情况 服务器实现及其功能: 1、读取配置文件,为服务器自身设置IP地址、端口号、阻塞模式、最大连接数目并...
在Linux环境下,C++实现基于Socket的文件传输是一项常见的任务,尤其在分布式系统、网络编程以及服务器开发中。Socket是网络通信的一种接口,它允许进程间通过网络进行数据交换。本篇文章将深入探讨如何利用C++在...
在Python中,我们可以使用内置的socket库来实现客户端和服务器的通信。`TCP_server.py`文件通常包含了服务器端的代码,它会创建一个socket对象,绑定到特定的IP地址和端口,然后调用listen()方法监听连接。当有...
5. **客户端缓存**:在C#中,可以使用MemoryStream或FileStream来实现文件的读取和缓存,这样可以有效地管理内存,避免一次性加载整个文件。 6. **发送与接收**:客户端通过Socket的Send方法逐个发送数据包,服务器...
用socket实现文件传输在MFC中实现客户端和服务器的连接,相互通信。
本项目是使用java Socket编程实现的一个简单的FTP服务器和客户端。 客户端目前实现的功能是登录,刷新,上传和下载。同时具有主动模式和被动模式两种模式。 服务器端实现的功能有登录、刷新、上传、下载、列出文件...
在Python中,使用socket模块实现文件传输是一个基础且实用的技能。本文将详细介绍在Python环境下,如何使用socket传输包括图片和视频在内的各种文件。文章内容涵盖了服务器端和客户端的代码实现,以及文件处理的相关...
在这个场景中,我们主要关注如何通过Socket来实现在服务器上进行文件的操作,包括下载、上传和删除等。下面将详细介绍Socket编程的基本原理及其在文件操作中的应用。 首先,Socket可以理解为网络上的“插座”,它为...
Java语言通过Socket实现文件传输是一种常见的网络编程技术,它基于TCP/IP协议,可以在不同设备间进行数据的可靠传输。在Unix/Linux/Windows等操作系统环境下,无论是客户端(Client)还是服务器端(Server),都可以...
在"Java Socket PC端传输文件简易服务器客户端"这个项目中,我们主要会涉及以下知识点: 1. **Java Socket类**: - Socket类代表了网络上的一个连接,它包含了IP地址和端口号。通过创建Socket实例,客户端可以连接...
通过本文的介绍,我们可以了解到使用 Socket 实现文件上传下载的基本原理和步骤。这种实现方式适用于简单的文件传输需求。对于更复杂的场景,如大文件传输、断点续传等,可能需要考虑更高级的技术方案,例如使用 ...
在这个场景中,我们将讨论如何使用Java实现一个简单的文件传输功能,即客户端通过Socket连接将文件发送到服务器。 首先,我们需要理解Socket通信的基本流程: 1. **服务器端**: - 创建`ServerSocket`实例,指定...
在这个示例中,我们将探讨如何使用Socket来实现文件传输。在互联网通信中,Socket是客户端和服务器之间通信的基础,它允许两个程序通过网络交换数据。 首先,我们需要理解Socket的基本概念。Socket可以看作是两台...
本篇文章将详细探讨如何利用Socket实现这一功能。 首先,我们需要了解Socket的基本概念。Socket是操作系统提供的一种接口,用于网络上不同主机间的进程通信。它分为两部分:服务器端的Socket和客户端的Socket。...
"vc++编写的基于socket5的代理服务器源代码" 指的是一项使用Microsoft Visual C++(vc++)编程语言开发的软件项目,该项目实现了基于Socket5协议的代理服务器功能。Socket5是一种通用的代理协议,允许客户端通过...
以上就是使用C语言socket实现文件下载的基本流程。实际应用中,还需要考虑更多的细节,如异常处理、内存管理、性能优化等。通过深入理解和实践这些知识点,可以更好地掌握网络编程,实现高效的文件下载服务。
本示例中,我们探讨的是如何利用C#的WinForm来创建一个基于Socket的服务端和客户端,实现两者之间的消息传递,以及在服务器断线后的重连机制。 首先,Socket在C#中是System.Net.Sockets命名空间下的类,它提供了TCP...