S
sandyhappy
Unregistered / Unconfirmed
GUEST, unregistred user!
我这边有一个程序要写,是一个c/s模式的服务器客户端通信程序客户端和服务器中间的
通信协议,是我们自己定义的,该协议是一个应用层协议,客户端和服务器之间采用TCP
连接。我想把客户端和服务器中间通信的部分封装在一个DLL中,以后开发起来可以直接
调用。但是有些问题自己搞不清楚
1、比如,我的协议中有一个和服务器连接的功能
定义如下:connectip:string;port:integer):integer;
客户端调用了dll之后,可以直接调用dll中的connect来和服务器建立连接建立连接后,
服务器有一个回应。问题也处在这里,如果服务器回应了,我的主程序(调用dll的那
个)怎么知道服务器已经给我了回应。如果用windows消息驱动,那么等于是每次写客
户端都要去处理那些消息,使客户端的编程变的复杂起来。能不能像delphi中的控件
那样,有一个事件比如像onclick一样,可以在其中写入代码,当该事件触发以后,可
以执行该事件处理过程中的代码。而不需要主程序捕获DLL传来的系统消息。
2、服务器端的winsockserver是否需要建立多线程。如果每个用户连接的时候建
立一个线程,那么如果用户有100-200人的话,程序会不会应为线程太多而性能下降
和不稳定。如果不用线程,采用异步方式,每个客户端连接,建立一个socket对象,
等于是建立了一个socket池这样处理可不可以,对系统的性能有何影响。
请大家给点意见,再加分都可以
通信协议,是我们自己定义的,该协议是一个应用层协议,客户端和服务器之间采用TCP
连接。我想把客户端和服务器中间通信的部分封装在一个DLL中,以后开发起来可以直接
调用。但是有些问题自己搞不清楚
1、比如,我的协议中有一个和服务器连接的功能
定义如下:connectip:string;port:integer):integer;
客户端调用了dll之后,可以直接调用dll中的connect来和服务器建立连接建立连接后,
服务器有一个回应。问题也处在这里,如果服务器回应了,我的主程序(调用dll的那
个)怎么知道服务器已经给我了回应。如果用windows消息驱动,那么等于是每次写客
户端都要去处理那些消息,使客户端的编程变的复杂起来。能不能像delphi中的控件
那样,有一个事件比如像onclick一样,可以在其中写入代码,当该事件触发以后,可
以执行该事件处理过程中的代码。而不需要主程序捕获DLL传来的系统消息。
2、服务器端的winsockserver是否需要建立多线程。如果每个用户连接的时候建
立一个线程,那么如果用户有100-200人的话,程序会不会应为线程太多而性能下降
和不稳定。如果不用线程,采用异步方式,每个客户端连接,建立一个socket对象,
等于是建立了一个socket池这样处理可不可以,对系统的性能有何影响。
请大家给点意见,再加分都可以