socket服务端我写在web的servlet下面,代码如下:
public class SocketServlet extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
* 启动tomcat时,以线程的方式启动一个socket连接
*/
public void init(ServletConfig config) throws ServletException {
Socket socket = null;
SocketThread sthread = new SocketThread();
sthread.start();
socket = sthread.getSocket();
}
SocketThread 类:
public class SocketThread extends Thread{
private static Socket s = null;
public void run() {
try{
ServerSocket listener = new ServerSocket(500);
while(true){
//写相关业务
s = listener.accept();
}
}catch(Exception ex){
}
}
public Socket getSocket(){
return s;
} }socket客户端写在另一个独立的java应用程序里:代码如下
public class SocketTest {
public static void main(String args[]) {
try{
Socket socket=new Socket("127.0.0.1", 5000);
System.out.println("1312313");
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new
InputStreamReader(socket.getInputStream()));
String readline;
readline=sin.readLine();
while(!readline.equals("bye")){
os.println(readline);
os.flush();
System.out.println("Client:"+readline);
System.out.println("Server:"+is.readLine());
readline=sin.readLine();
} //继续循环
os.close(); //关闭Socket输出流
is.close(); //关闭Socket输入流
socket.close(); //关闭Socket
}catch(Exception e) {System.out.println("Error"+e); //出错,则打印出错信息}
}
}
}
web下的一个jsp页面:代码如下
<form name="uploadForm" method="post" action="<%=path %>/uploadServlet" encType=multipart/form-data>
<table border=1 cellpadding="1" width="100%" height="100%" id="tblContent" class="tblContent">
<tr>
<td>上传文件:<input type="file" name="file" ><button type="submit">提交</button></td>
</tr>
</table>
</form>
我现在的问题是:在jsp页面选择一个文件上传,我怎么把这个文件传给socket服务端,然后通过socket服务端把文件传给客户端。因为在socket客户端的这个java应用程序里我需要接受到这个文件,然后通过ftp的方式上传到最终的文件服务器,我现在是一台机器做的小案例,项目启动后这份三台机器来做的。这个问题纠结了我好多天,求大侠们帮忙。
public class SocketServlet extends HttpServlet {
/**
* @see Servlet#init(ServletConfig)
* 启动tomcat时,以线程的方式启动一个socket连接
*/
public void init(ServletConfig config) throws ServletException {
Socket socket = null;
SocketThread sthread = new SocketThread();
sthread.start();
socket = sthread.getSocket();
}
SocketThread 类:
public class SocketThread extends Thread{
private static Socket s = null;
public void run() {
try{
ServerSocket listener = new ServerSocket(500);
while(true){
//写相关业务
s = listener.accept();
}
}catch(Exception ex){
}
}
public Socket getSocket(){
return s;
} }socket客户端写在另一个独立的java应用程序里:代码如下
public class SocketTest {
public static void main(String args[]) {
try{
Socket socket=new Socket("127.0.0.1", 5000);
System.out.println("1312313");
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new
InputStreamReader(socket.getInputStream()));
String readline;
readline=sin.readLine();
while(!readline.equals("bye")){
os.println(readline);
os.flush();
System.out.println("Client:"+readline);
System.out.println("Server:"+is.readLine());
readline=sin.readLine();
} //继续循环
os.close(); //关闭Socket输出流
is.close(); //关闭Socket输入流
socket.close(); //关闭Socket
}catch(Exception e) {System.out.println("Error"+e); //出错,则打印出错信息}
}
}
}
web下的一个jsp页面:代码如下
<form name="uploadForm" method="post" action="<%=path %>/uploadServlet" encType=multipart/form-data>
<table border=1 cellpadding="1" width="100%" height="100%" id="tblContent" class="tblContent">
<tr>
<td>上传文件:<input type="file" name="file" ><button type="submit">提交</button></td>
</tr>
</table>
</form>
我现在的问题是:在jsp页面选择一个文件上传,我怎么把这个文件传给socket服务端,然后通过socket服务端把文件传给客户端。因为在socket客户端的这个java应用程序里我需要接受到这个文件,然后通过ftp的方式上传到最终的文件服务器,我现在是一台机器做的小案例,项目启动后这份三台机器来做的。这个问题纠结了我好多天,求大侠们帮忙。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货