⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 48.htm

📁 网络编程原理文摘 [文件] 精华区目录结构 [目录] 网络编程的基本原理 [目录] 网络编程与网络协议 [目录] 网上资源 [目录] winsock技术 [目录
💻 HTM
字号:
<HTML><HEAD><TITLE>CTerm非常精华下载</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type></HEAD>
<BODY bgColor=#ffffff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=100% background=0044.jpg>
  <BODY>
  <TR>
    <TD height=150 rowSpan=2 width="308" ><IMG alt=DDl_back.jpg height=129 width=300 src="DDl_back.jpg" ></TD>
    <TD background=DDl_back2.jpg height=50 width="581" ><BIG><BIG><FONT face=黑体>
      <P align=center >重拳出击  一网打尽</FONT></BIG></BIG></P></TD></TR>
  <TR>
    <TD bgColor=#0099ff borderColor=#0099ff height=5 width="581"></TD></TR>
  <TR>
    <TD align=middle colSpan=2 height=100 vAlign=top width="891" ><BR>
<p align=center>[<a href="清华bbs网络资源.htm">回到开始</a>][<a href="6.htm">上一层</a>][<a href="49.htm">下一篇</a>]
<hr><p align="left"><small>发信人: firerain (火之雨), 信区: Winsock <br>

  <br>

我想做一个基于Winsocket的proxy软件,要求不高,只要能对付10--20个用户 <br>

就可以了。我本来想是以异步方式来做的。但是在多个客户同时进行的时候好象 <br>

不够好。又想用多线程,但是我不知道在副线程里的异步消息发给谁呢?发给 <br>

主线程的Mainframe吗? 那不是和单线程的没什么意义了吗? <br>

可是难道我把每个副线程都做成UI-Thread吗? 有这种必要吗? <br>

否则我没窗口来响应消息呀? <br>

  <br>

小弟是初学的,请大侠们多多指点,谢谢,谢谢  //bow <br>

  <br>

PS:我用的是Vc6 <br>

  <br>

  <br>

  <br>

发信人: pman (强), 信区: Winsock <br>

  <br>

  <br>

呵呵,看我的文吧,用multi -thread,阻塞模式的socket,如果用 <br>

mfc,我建议你使用CSocket+CArchive <br>

  <br>

【 在 firerain (火之雨) 的大作中提到: 】 <br>

: 我想做一个基于Winsocket的proxy软件,要求不高,只要能对付10--20个用户 <br>



: 就可以了。我本来想是以异步方式来做的。但是在多个客户同时进行的时候好象 <br>

: 不够好。又想用多线程,但是我不知道在副线程里的异步消息发给谁呢?发给 <br>

: 主线程的Mainframe吗? 那不是和单线程的没什么意义了吗? <br>

: 可是难道我把每个副线程都做成UI-Thread吗? 有这种必要吗? <br>

: 否则我没窗口来响应消息呀? <br>

: 小弟是初学的,请大侠们多多指点,谢谢,谢谢  //bow <br>

: PS:我用的是Vc6 <br>

  <br>

  <br>

  <br>

  <br>

发信人: manboy (独孤酒剑), 信区: Winsock <br>

  <br>

【 在 pman (强) 的大作中提到: 】 <br>

: 呵呵,看我的文吧,用multi -thread,阻塞模式的socket,如果用 <br>

: mfc,我建议你使用CSocket+CArchive <br>

  <br>

用CArchive的话连接的两端都得用MFC了吧。 <br>

直接用send和receive也可以呀,就是麻烦了些。 <br>

  <br>

  <br>

  <br>

  <br>

发信人: manboy (独孤酒剑), 信区: Winsock <br>

  <br>

如果你作的是http的socket的话, <br>

用多线程就可以了,完成一次操作后就关之。 <br>

【 在 firerain (火之雨) 的大作中提到: 】 <br>

: 我想做一个基于Winsocket的proxy软件,要求不高,只要能对付10--20个用户 <br>

: 就可以了。我本来想是以异步方式来做的。但是在多个客户同时进行的时候好象 <br>

: 不够好。又想用多线程,但是我不知道在副线程里的异步消息发给谁呢?发给 <br>

: 主线程的Mainframe吗? 那不是和单线程的没什么意义了吗? <br>

: 可是难道我把每个副线程都做成UI-Thread吗? 有这种必要吗? <br>

: 否则我没窗口来响应消息呀? <br>

: 小弟是初学的,请大侠们多多指点,谢谢,谢谢  //bow <br>

: PS:我用的是Vc6 <br>

  <br>

  <br>

  <br>

  <br>

发信人: firerain (火之雨), 信区: Winsock <br>

  <br>

多谢各位的指教,我现在用的是blocking socket,我自己加上了一定的异常处理 <br>

然后用多线程来做,目前看来工作的挺好 <br>

  <br>

  <br>

  <br>

【 在 manboy (独孤酒剑) 的大作中提到: 】 <br>

: 如果你作的是http的socket的话, <br>

: 用多线程就可以了,完成一次操作后就关之。 <br>

  <br>

  <br>

  <br>

  <br>

发信人: DeXi (至菜->现在就努力), 信区: Winsock <br>

  <br>

能不能说说消息处理问题是如何解决的呢,如果要较好的控制各个socket,比如 <br>

可以在任意时候强行关闭它,则一定要和子线程通讯,这应如何做呢?worker thread <br>

的话岂不是要大量使用全局变量,UI-thread的话又好像开销太大了点,能介绍一下 <br>

经验吗,谢谢 <br>

  <br>

//bow <br>

  <br>

【 在 firerain (火之雨) 的大作中提到: 】 <br>

: 多谢各位的指教,我现在用的是blocking socket,我自己加上了一定的异常处理 <br>

: 然后用多线程来做,目前看来工作的挺好 <br>

  <br>

  <br>

  <br>

  <br>

  <br>

发信人: firerain (火之雨), 信区: Winsock <br>

  <br>

可能由于我做的程序要求不高,所以我做的很简单,我只写了一百来行的 <br>

代码:-PPP <br>

我没有用消息驱动,我直接用了windows socket API来做的,所以就避免 <br>

了为消息驱动所必须的窗口的问题,我用的是work-thread!! <br>

我采用一个全局的sokcet监听端口,再没街道一个连接就开一个新的线程来 <br>

处理,同时对线程树木进行限制,避免毫太多资源。 <br>

因为我做的是一个proxy嘛,所以我用的是select函数,用时间间隔0来调用 <br>

以查询客户端和远程服务器的可读状态,然后转发数据。在这个循环中我用 <br>

一个事件变量来同步,一但主线程setevent的话,副线程立刻无条件退出。 <br>

同时我保存各个线程的handle,在推出中用waitformutixobject同步。 <br>

  <br>

不知道这种方式是否和合适,还请各位前辈指点一二 <br>

  <br>

  <br>

  <br>

  <br>

【 在 DeXi (至菜->现在就努力) 的大作中提到: 】 <br>

: 能不能说说消息处理问题是如何解决的呢,如果要较好的控制各个socket,比如 <br>



: 可以在任意时候强行关闭它,则一定要和子线程通讯,这应如何做呢?worker thread <br>

: 的话岂不是要大量使用全局变量,UI-thread的话又好像开销太大了点,能介绍一下 <br>

: 经验吗,谢谢 <br>

: //bow <br>

  <br>

  <br>

  <br>

  <br>

发信人: manboy (独孤酒剑), 信区: Winsock <br>

  <br>

【 在 firerain (火之雨) 的大作中提到: 】 <br>

: 可能由于我做的程序要求不高,所以我做的很简单,我只写了一百来行的 <br>

: 代码:-PPP <br>

: 我没有用消息驱动,我直接用了windows socket API来做的,所以就避免 <br>

: 了为消息驱动所必须的窗口的问题,我用的是work-thread!! <br>

: 我采用一个全局的sokcet监听端口,再没街道一个连接就开一个新的线程来 <br>

: 处理,同时对线程树木进行限制,避免毫太多资源。 <br>

: 因为我做的是一个proxy嘛,所以我用的是select函数,用时间间隔0来调用 <br>

: 以查询客户端和远程服务器的可读状态,然后转发数据。在这个循环中我用 <br>

: 一个事件变量来同步,一但主线程setevent的话,副线程立刻无条件退出。 <br>

: 同时我保存各个线程的handle,在推出中用waitformutixobject同步。 <br>

: 不知道这种方式是否和合适,还请各位前辈指点一二 <br>



  <br>

这样的话,工作线程的循环不是一直在走吗?会不会很耗CPU呀? <br>

  <br>

  <br>

  <br>

  <br>

</small><hr>
<p align="center">[<a href="清华bbs网络资源.htm">回到开始</a>][<a href="6.htm">上一层</a>][<a href="49.htm">下一篇</a>]<p align="center" ><font face="黑体" size=5><big>网络资源大全</big></font></p> 
</table> 
</body> 
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -