几个小问题,欢迎大家讨论!150分奉送(150分)

  • 主题发起人 主题发起人 book523
  • 开始时间 开始时间
B

book523

Unregistered / Unconfirmed
GUEST, unregistred user!
1。Serversocket,Clientsocket同时发送信息,会不会造成信息丢失?
2。Ttimer有没有自己的线程,同时使用多个timer会不会造成冲突?
3。如果多个线程中都用到了主线程的Serversocket,会不会造成冲突,
怎么解决这类冲突问题?
 
1.不会丢失
2.不会冲突
 
1,不会。但是我想应该有限制。
2,不会。太多的时候资源会不够。

关注。
 
1、同时使用应该没有问题。
2、多个TTimer当然可以一起使用了。一个程序中用多个TTimer很正常呀。
3、如果要在线程中使用主线程的Serversocket,要使用Synchronize();
我也正在用Socket做程序,欢迎大家多多讨论!
 
请大家继续讨论啊,
我做了一个短信发送系统,用socket通讯,包含
一个短信平台程序(负责短信接受,发送),
一个服务器程序(负责和数据库打交道)。
功能基本上都实现了,现在就是考虑数据安全问题,
主要是我提出的上面三个问题,欢迎大家讨论啊!
 
1,不会丢失,TCP有重发机制的
2,TTimer只能用在一般的领域,多个TTimer不冲突,WM_TIMER消息的优先级非常低!
在一些要求教高的地方不合适使用,建议使用CreatWaitableTimer()函数
3,多个线程使用ServerSocket一般不会冲突,只是不要修改了ServerSocket的一些设置,
比如Port,但是具体问题要具体分析
 
1、不会丢失,但是如果连接类型设置为stNonBlocking的话,如果同时发送可能会造成数据
乱码或者错乱的现象。
2、对个TTimer不会冲突,但是如果要使用多个的话必须吧相应的时间间隔拉长一点,不然
同时的话,很耗资源。。
3、最好是每个用户对应一个线程/实例。
 
1、不会丢失
2、对个TTimer不会冲突
3、不会冲突。

不过你的客户端与服务端用"阻塞"方式不会出现问题吗?
 
不会丢失不会冲突
 
1。Serversocket,Clientsocket同时发送信息,会不会造成信息丢失?
不会,但是port需要不同。

2。Ttimer有没有自己的线程,同时使用多个timer会不会造成冲突?
由于没有线程,所以多个timer产生的事件是依次进行的。所以不会造成冲突

3。如果多个线程中都用到了主线程的Serversocket,会不会造成冲突,
怎么解决这类冲突问题?
会产生冲突。你可以用
1、利用临界区来实现同步。
2、利用互斥来实现同步。
3、利用信号量来实现同步。

其中利用临界区是最简单的。
临界量 CS:TRTLCriticalSection
InitializeCriticalSection(CS);
DeleteCriticalSection(CS);

EnterCriticalSection(CS); //进入临界区
LeaveCriticalSection(CS); //退出临界区

使用主线程的Serversocket的代码都用EnterCriticalSection(CS);LeaveCriticalSection(CS);
包起来就可以了。


 
继续讨论啊。。
 
多人接受答案了。
 
后退
顶部