设计要求:
1。服务端使用winsock,1个服务器可容纳1000人以上
2。客户端使用IE,不包含axtivex控件
3。使用80端口连接服务器已了解的东西:
曾经尝试使用MSDN的方法,服务端用一个winsock监听,winsock组循环接受客户端请求,一旦有连接近来间隔10秒向客户端发送HTML注释代码。客户端使用两个Frame,一个一直连线用来接受聊天信息(可以连续接受到服务器端发送的代码),另一个准备用来向服务器发送信息。未了解的东西:
1、客户端如何向服务器发送信息。
2、基于winsock的chatserver编写思路
1。服务端使用winsock,1个服务器可容纳1000人以上
2。客户端使用IE,不包含axtivex控件
3。使用80端口连接服务器已了解的东西:
曾经尝试使用MSDN的方法,服务端用一个winsock监听,winsock组循环接受客户端请求,一旦有连接近来间隔10秒向客户端发送HTML注释代码。客户端使用两个Frame,一个一直连线用来接受聊天信息(可以连续接受到服务器端发送的代码),另一个准备用来向服务器发送信息。未了解的东西:
1、客户端如何向服务器发送信息。
2、基于winsock的chatserver编写思路
==========
Private Sub Form_Load()
Winsock1.LocalPort = Text1.Text
Winsock1.Listen
End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock2.Accept requestID
List1.AddItem "有个连接近来了"
End SubPrivate Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Winsock2.GetData ABC
List1.AddItem bytes2BSTR(ABC)
End SubFunction bytes2BSTR(vIn)
Dim strReturn
Dim i1, ThisCharCode, NextCharCode
strReturn = ""
For i1 = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn, i1, 1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn, i1 + 1, 1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i1 = i1 + 1
End If
Next
bytes2BSTR = strReturn
End FunctionClient
==============
Private Sub Command1_Click()
Winsock1.RemoteHost = Text1.Text
Winsock1.RemotePort = Text2.Text
Winsock1.LocalPort = 6666
Winsock1.Connect
End Sub
Private Sub Command2_Click()
Winsock1.SendData Text3.Text
End Sub==========================================
很奇怪为什么用activex发送的数据是乱码,所以还加了一个bytes2BSTR(vIn)来解码
2。客户端使用IE,不包含axtivex控件
3。使用80端口连接服务器HTML的客户端脚本本身是不能开端口访问远程服务器的,你还是需要安装ActiveX控件的。
---------
应该是可以连接的把..下面这个程序可以接收到 IE的信息Private Sub Form_Load()
Winsock1.LocalPort = 80
Winsock1.Listen
End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock2.Accept requestID
MsgBox "OK"
End Sub
客户端不安ActiveX也行,用WinSock摸拟WebServer.想一想就知道有多麻烦...客户端发送信息使用"网页表单提交"这样.POST到WinSock!当WinSock收到这个信息,交给程序生成HTML页面,再交给Winsock返回给所有连接.哇,头晕.还要处理私聊,等等特殊情况.简直是蛮干...相比起几个ASP脚本+一个HTML框架的B/S...我不想活了...
服务器性能应该问题不大
CUP双至强2.4
1G内存我了解可能需要建立一个winsock组,创建1000个 启动是花了点时间(10几秒)但不知道还应该注意些什么?
非常感谢,受益非浅.你提到的是用C/S模式来实现IM软件的架构,如果使用B/S模式(服务器端同样使用winsock编写)情况是什么样呢?
一般意义上的B/S架构的编程是指编写web应用程序。也就是程序的展示部分用html形式,逻辑处理放在服务器上,这样省去了客户端程序的维护。
就性能上来说使用ChatServer应该要优于ASP吧,或者这几个东西的比较是否是对的
ChatServer > ASP+XMLHttp > 纯ASP ?To:TechnoFantasy
已经考虑这个方式,轮流使用(接受连接).关键是如何提高form提交过来处理的效率,因为这个连接短开是非常频繁的.是否可以有 winsock + ASP的组合方式?