最近项目涉及到 一个应用程序 和两个端口的客户端进行通信 有几个问题 一.是一个应用程序是否可以启动两个服务? 二.用一个tcp服务怎样监听两个端口和接受数据 三.是否非用多线程才能实现一个应用程序监听多个端口 很急 希望各位高手尽快给答复 谢谢了.
解决方案 »
- 静态库的调用使用//漏下什么了?
- 关于wave混音的算法,急求各位大侠帮助啊!!!!!
- MFC如何获取远程文件的图标
- pcap_open打开一个文件后,怎么关闭啊?
- 对于QQ登录验证的疑问
- 关于SDI的最大化问题
- 什么是打包解包啊?
- 在用new分配内存时出现User breakpoint called from code at 0x77874b1c
- 请问如何将CString转换为int.谢谢
- 关于读取table内容的问题
- 请教PRJ0019错误, 编译ffdshow的时候碰到的
- error LNK2001: unresolved external symbol __CrtDbgReport??????????????
"一个应用程序 和两个端口的客户端进行通信" - 能解释下什么叫"两个端口的客户端吗"?估计只有你自己能看明白.1.一个应用程序可以提供一个或以上的服务,只是看你功能是否支持.例子,ccproxy,一个程序支持了http/ftp/socks4/socks5/网关服务等
2.方法有N多,模型也有很多,主要是"独立处理"还是"根据协议处理".
"独立处理"是每个不同服务开一个线程去监听端口,等待客户端连后再处理.
"根据协议处理"是所有打开的服务端口的socket都关联(例如关联到IOCP,消息驱动WSAAsyncSelect(),事件驱动WSAEventSelect()等),然后再根据不同服务的协商数据确定提供哪种服务.
3.单线程/多线程都可以,只是看要实现的服务是否可以通过数据协议知道要提供哪种服务类型.例如要实现http/socks4/socks5服务,那么单线程也没问题,因为http/socks4/socks5的协商协议都是独立不同的,根据协商协议就能知道要提供哪种服务.
至少2个线程。一个端口一个。如果要求处理较多用户的同时请求,则要多线程,accept后新建一个线程进行处理,主线程继续listen
同样也是
"我测试了 创建两个socket时 接受时只能接受到一个的 我刚开始接触网络编程 不是太明白 创建两个socket是不是 就得用多线程啊 谁有demo给个 看看 谢谢 不然不太明白"
1.创建两个线程,没别监听处理
2.采用I/O多路复用,linux中采用select函数即可,具体用法,可以查手册