我有好几个问题,希望高手给我思路:
我做个简单的模型:
//服务器端程序
static int a ;
main()
{
while(1)
{
accept//一直等待客户端数据传输请求
如果请求成功则发送数据a;
}}ONTIMER//定时器:0.1秒运行一次
{
a+=1;}
问题:
1.当程序运行的时候,定时器已经触发,但进不去,程序在accept的地方死了。我问了别人要用多线程,如果不用多线程还能怎么解决吗?
2.怎么确定客户端接受的a是对的?另外绑定一个数据b,但b设定为定值,在客户端检验b对不对然后推倒a对不对?
我做个简单的模型:
//服务器端程序
static int a ;
main()
{
while(1)
{
accept//一直等待客户端数据传输请求
如果请求成功则发送数据a;
}}ONTIMER//定时器:0.1秒运行一次
{
a+=1;}
问题:
1.当程序运行的时候,定时器已经触发,但进不去,程序在accept的地方死了。我问了别人要用多线程,如果不用多线程还能怎么解决吗?
2.怎么确定客户端接受的a是对的?另外绑定一个数据b,但b设定为定值,在客户端检验b对不对然后推倒a对不对?
解决方案 »
- 请问:如何在MimeFilter过滤器中获得当前过滤的WebBrowser对象指针?
- 前台程序用什么方法能得到数据库表中的行数?
- 排列组合公式中如何实现?
- 在listcontrol中插入数据项
- 请问在vc里面.def文件有什么用?生成.rbj文件的cvtres工具是干什么的,为什么有时候又不需要呢?
- 谁熟悉MSCOMM怎样设置才能产生"接受到数据"事件,请详细告诉我吧!!
- 紧急求救--<string>
- 请问怎样判断字符串是否全部由数字组成,着急,谢!
- 关于“itoa(int,char,int)”的问题
- Combo Box Properties Data 中的内容如何输入???
- CFileDialog和CStdioFile的问题
- 为什么同一个线程可以弹出多个MessageBox?
2. TCP传输是可靠的 需要再检查a值么 还是a值在你的逻辑上 可能有要求
一种方式是在创建Socket的时候使用非阻塞方式,
另外一种是使用MFC的CSocket.
PS:如果是简单的网络服务 CSocket 完全可以满足需要.对于大数据量多客户端,复杂的网络服务还是使用SOCKET,将Accept放在独立线程中,
每个连接建立一个独立线程,更复杂的情况可以考虑使用客户端的连接池.