社区
网络及通讯开发
帖子详情
如何实现一个 ClientSocket 与 多个 服务器端 通讯???
fxly
2004-04-30 12:02:50
因为涉及到多线程方面的问题,而且手头没有资料,所以请大家帮忙。
理论讲解 + 代码范例 = 最受欢迎!!!
UP有分!^_^
...全文
214
26
打赏
收藏
如何实现一个 ClientSocket 与 多个 服务器端 通讯???
因为涉及到多线程方面的问题,而且手头没有资料,所以请大家帮忙。 理论讲解 + 代码范例 = 最受欢迎!!! UP有分!^_^
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
msw958789
2004-07-10
打赏
举报
回复
ADOQuery 控件可以通过主线程传递给子线程!子线程中添加构造函数,然后使用同步VCL可以实现的!
eastnofail
2004-06-17
打赏
举报
回复
你为什么要用vcl的socket控件呢?为什么直接用不用winsock sdk?
zcchm
2004-06-15
打赏
举报
回复
换一个思路,把多个服务器端换成ClientSocket, 这个ClientSocket换成ServerSocket
littlexidong
2004-06-14
打赏
举报
回复
你想干什么??
dovedrake
2004-06-11
打赏
举报
回复
长连接与否,与阻塞方式没有关系,纯粹取决于代码实现
joyzz
2004-06-11
打赏
举报
回复
关注
dovedrake
2004-06-11
打赏
举报
回复
在大一点的通信程序中,建立一百个客户端连接是很正常的,如果只打算用控件来做,我觉得不是很明智,因为控件的数量是在编写代码时设计好的(除非动态生成),如果以后你需要建立两百个连接,你还能手工再往上放100个clientsocket吗?
应该把这种连接相关的操作全部封装到一个类中,在实际需要时,通过一定条件来生成一个类的实例,从而实现一个连接(可以实现一套多线程管理之类的东东,来把所有实例都管理起来)。这样,你的程序的灵活性才会更大一些。至于类的编写,这就是你自己的功夫了,根据你的实际需要来定制吧。
deshun205
2004-06-09
打赏
举报
回复
我目前也在作这种工作。
设计的要求上可以连接200台左右的机器。
我也不知道,
hqylfy
2004-06-07
打赏
举报
回复
认为还是建立100个SOCKET
一个CLIENTSOCKET只能面对一个连接
xugeng
2004-06-06
打赏
举报
回复
可以用API来写
ssyqcwj
2004-06-06
打赏
举报
回复
关注!
fxly
2004-05-14
打赏
举报
回复
如果ClientSocket要与ServerSocket保持长久的连接,ClientSocket端用阻塞的方式,还是非阻塞的方式?
哪一种比较好?
kinglh
2004-05-12
打赏
举报
回复
帮你up
fxly
2004-05-08
打赏
举报
回复
TO FreeFice(庄鱼):
你的办法只适合查询一下Server端的状态的简单操作,如果同时实现信息交互,不但会慢的要命,而且必死无疑! :(
庄鱼
2004-05-08
打赏
举报
回复
我沒做具体测试,不过,从原理上说,仅仅是将你的机器作为一个服务器而已,而将访问服务器作为你的客户端。如果通信量不是很大的话,你这里的资源消耗应该会比较小。由于整个过程都处于静默状态,你实际上仅仅是接受对方服务器的数据。当你需要主动访问对方服务器时,则通过建立其它的临时连接将作业请求发出,然后断开该连接,等待对方将回应数据通过该机自己的连接方式将数据发送回来,这样做虽然会出现一些延时,但对网络资源整体消耗来说应该不会很大。
当连接已经完成时,你就可以通过直接回应相应客户端的方式向访问服务器提交你的查询,这样你这里仅仅需要建立一个各访问服务器的连接套接字的表,你需要向哪个服务器访问就访问相应的套接字即可。从理论上说,这样做没有什么问题,只要不是同时的处理,应该比建立n个连接经济的多。
yesry
2004-05-08
打赏
举报
回复
up
我只为分而来
fxly
2004-05-07
打赏
举报
回复
用VCL控件,同步的问题很闹心……
庄鱼
2004-05-07
打赏
举报
回复
你不能反过来吗?在你的机器上装一个TServerSocket!让它和一个TClientSocket配对工作。
先在自己的及其上激活server,设置好特殊的侦听端口,然后用client去轮寻100个server端,激活守候进程,向你的机器发送连接请求,你再试试看呢?
fxly
2004-05-07
打赏
举报
回复
而且要多个ClientSocket可以同时往数据库的表里面添加数据!
ADOQuery不支持多线程,只有通过 Synchronize()函数来控制了…… :(
哪位高手知道有没有更好的办法???
fxly
2004-05-07
打赏
举报
回复
To :weill(每天提一问,一天学一点)
就是要每个ClientSocket 都一直连着服务器,够恐怖吧 ?! :(
加载更多回复(6)
一个
服务器对
多个
客户端的MFC
Socket
编程示例(
实现
简单的即时
通讯
功能)
环境:Windows XP SP3、 VC++ 6.0、 Windows 2003 SDK 使用步骤: 1、下载解压之后,使用VC++ 6.0打开两个工程:
一个
是
Socket
Server和
一个
Client
Socket
工程。 2、首先运行
服务器端
工程,选默认的端口1008 3、然后运行客户端工程,选默认的端口1008和默认的服务器地址 4、再运行
多个
客户端进程 5、如果一切正常,可以每个客户端的消息发送,我们可以在服务端和各个客户端同步看到消息
实现
一个
服务器对
多个
客户端的关键是,在服务端的使用集合CPtrList类用保存客户端的
socket
对象,思想与Java中的编程思想一样,只不过Java中会使用多线程技术,在Vector集合保存客户端的
socket
对象,而MFC框架提供了C
Socket
类,它是
一个
异步通信的类,所以看上去代码比较Java的多线程代码简单的
实现
了
一个
对多的即时
通讯
功能。另外,MFC提供了C
Socket
File类和CArchive类与C
Socket
类
实现
了C++的网络
通讯
编程功能。 本示例注释非常详细,所有的辅助类都放
一个
util目录中,然后在工程中分了
一个
目录来管理这些辅助类,使用代码非常清晰。手动书写部分的代码是按Java的
winsock
实现
服务机客户机通信
服务器端
设计: 1. 在
服务器端
首先建立
一个
用于监听客户端的套接字; 2. 当客户端连接时,建立
一个
和客户端通话的套接字,并且保持直到客户端中断连接; 3. 再启用监听套接字等待客户端的连接。 CListen
Socket
//监听客户端的套接字; OnReceive//接收消息; CServerDlg::AddMsg//添加接受到的信息到文本框。 客户端设计: 1. 首先建立
一个
套接字,来连接服务器,然后保持这个对应的套接字到
通讯
结束。 m_
Client
Socket
.Create()//创建
一个
套接字; m_
Client
Socket
.Connect()//连接服务器; m_
Client
Socket
.Send()//发送消息。
delphi
client
socket
、server
socket
客户端与
服务器端
通讯
,客户端向
服务器端
发送信息,
服务器端
可以选择N多在线的任意
一个
客户端,向其发送信息。(尚存一些BUG,有完善此程序的高手,请发我一份gaojiuyuan_1227@163.com,谢谢!)
socket
数据
通讯
编程
通过TServer
Socket
和T
Client
Socket
组件开发客户端和服务端程序,Server
Socket
组件可以同时接受
一个
或
多个
Client
Socket
组件的连接请求,并与每个
Client
Socket
组件建立单独的连接,进行单独的通信。因此,
一个
服务器端
可以为
多个
客户端服务。 压缩包里包含编译后的exe,还有完整的客户端和服务端源代码。
socket
TCPUDP数据
通讯
编程源代码
通过TServer
Socket
和T
Client
Socket
组件开发客户端和服务端程序,Server
Socket
组件可以同时接受
一个
或
多个
Client
Socket
组件的连接请求,并与每个
Client
Socket
组件建立单独的连接,进行单独的通信。因此,
一个
服务器端
可以为
多个
客户端服务。 压缩包里包含编译后的exe,还有完整的客户端和服务端源代码。
网络及通讯开发
1,316
社区成员
8,873
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章