我想做2个com组件,一个在客户端运行,一个服务器端客户端需要给服务器发消息
消息包括此次发送的标题,还有若干文件流服务器端的com,把客户端的标题插到数据中,然后把文件保存在指定路径下,然后给客户端发成功消息比如
客户端:发送"感谢大家回答",还有c:\text.txt,d:\11.txt,e:\xx.doc的文件给服务器,服务器,接到后,把"感谢大家回答"把insert到数据库中,然后保存发来的若干文件到本地,如果成功给客户端发送成功,否则发送失败
----------------------------------------------------------
基本上上面就是需求我想用winsock来编程,不过,有以下问题
1,客户端向服务器发若干个文件流,怎么实现,还是用循环多次发送,winsock能实现文件的传输吗?就像QQ的传文件一样
2,服务器端要把这个批次是否成成功返回客户端,如果1问题中,用循环多次发送文件,能实现吗?(比如,c:\text.txt成功,而d:\11.txt失败,则返回失败)
3,这个程序是一个接口程序,2个公司之间的,一个是asp,一个是jsp,我想asp中用
com的winsock,jsp中servlet的socket,这样可以吗?
4,如果服务器端用servlet需要用线程编程吗?
--------------------------------------------------------
以上只是我想的,各位兄弟,还没有别的好办法吗?可以不用socket吗?以前有个类似的程序用的是dime,不过,服务器端不能给客户端返回值
消息包括此次发送的标题,还有若干文件流服务器端的com,把客户端的标题插到数据中,然后把文件保存在指定路径下,然后给客户端发成功消息比如
客户端:发送"感谢大家回答",还有c:\text.txt,d:\11.txt,e:\xx.doc的文件给服务器,服务器,接到后,把"感谢大家回答"把insert到数据库中,然后保存发来的若干文件到本地,如果成功给客户端发送成功,否则发送失败
----------------------------------------------------------
基本上上面就是需求我想用winsock来编程,不过,有以下问题
1,客户端向服务器发若干个文件流,怎么实现,还是用循环多次发送,winsock能实现文件的传输吗?就像QQ的传文件一样
2,服务器端要把这个批次是否成成功返回客户端,如果1问题中,用循环多次发送文件,能实现吗?(比如,c:\text.txt成功,而d:\11.txt失败,则返回失败)
3,这个程序是一个接口程序,2个公司之间的,一个是asp,一个是jsp,我想asp中用
com的winsock,jsp中servlet的socket,这样可以吗?
4,如果服务器端用servlet需要用线程编程吗?
--------------------------------------------------------
以上只是我想的,各位兄弟,还没有别的好办法吗?可以不用socket吗?以前有个类似的程序用的是dime,不过,服务器端不能给客户端返回值
WINSOCK可以实现文件传输.2,服务器端要把这个批次是否成成功返回客户端,如果1问题中,用循环多次发送文件,能实现吗?(比如,c:\text.txt成功,而d:\11.txt失败,则返回失败)
可以.
3,这个程序是一个接口程序,2个公司之间的,一个是asp,一个是jsp,我想asp中用
com的winsock,jsp中servlet的socket,这样可以吗?
可以,只要使用相同的能信协议.4,如果服务器端用servlet需要用线程编程吗?
要,一般有多少个点就要动态生成多少个WISOCK.
两个WINSOCK,一个专门侦听,有固定端口号,例如:3000.别一个是WINSOCK数组,参数待设.客户端:
一个WINSOCK.负责连接服务器.过程:
当客户机登录时,向服务器端的固定端口(3000)发送一个请求连接,发送格式自定,服务器端收到该信号后,WINSOCK数组动态生成一个WINSOCK,分配一个未占用的端口号,将该端口号发送回申请的客户机,侦听WINSOCK重新置为侦听状态(为下一个客户提供服务),并将新生成的WINSOCK设置为侦听,客户机收到后,将收到的端口设置为WINSOCK的新端口号,并重新与服务器连接.
该方法可实现一对多功能.类QQ.
java中的serversock没有办法给vb中的winsock发信息,vb中可以给java发
代码:
vb
Private Sub Command1_Click()
tcpClient.Close
tcpClient.Connect
End SubPrivate Sub Form_Load()
tcpClient.RemoteHost = "127.0.0.1"
tcpClient.RemotePort = 4321
End SubPrivate Sub tcpClient_Connect()
tcpClient.SendData Text1.Text
End Sub
Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
Dim abc
DoEvents
tcpClient.GetData abc, vbString
MsgBox abc
End Sub
Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
' Check if the control's State is closed. If not,
' close the connection before accepting the new
' connection.
MsgBox "1"
End Subjava:
import java.net.*;
import java.io.*;
import java.lang.*; public class Test{
public static void main(String args[]){
ServerSocket server;
Socket socket;
String s;
InputStream Is;
OutputStream Os;
DataInputStream DIS;
PrintStream PS; try{
//在端口4321注册服务
server=new ServerSocket(4321);
socket=server.accept();System.out.println("server ok");
System.out.println("************************************************");
System.out.println(""); //获得对应Socket的输入/输出流
Is=socket.getInputStream();
Os=socket.getOutputStream();
//建立数据流
DIS=new DataInputStream(Is);
PS=new PrintStream(Os);
DataInputStream in=new DataInputStream(System.in);
while(true){
System.out.println("");
System.out.println("please wait client′s message...");
System.out.println("");
s=DIS.readLine(); //读入从client传来的字符串
try{
System.out.println("client said:"+s); //打印字符串
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
System.out.print("you say:");
s=in.readLine(); //读取用户输入的字符串
PS.println(s); //将读取得字符串传给client
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
}
catch(Exception e){
System.out.println("error!!!" + e.toString());
}
} //关闭连接
DIS.close(); //关闭数据输入流
PS.close(); //关闭数据输出流
Is.close(); //关闭输入流
Os.close(); //关闭输出流
socket.close(); //关闭sockey
}
catch(Exception e){
System.out.println("Error:"+e);
}
}
} vb中的事件tcpClient_DataArrival怎么也触发不了
出现问题,
vb的给client发的东西收不到请问为什么server给client都收不到