社区
C++ 语言
帖子详情
求救~~! TCP连接!一个客户端同时连接多个服务器问题
abcqian
2012-05-14 04:17:20
求救~~! TCP连接!一个客户端同时连接多个服务器问题
现在在动态链接库里要做成一个TCP模块,去连接远端的TCP转485模块(服务器)。
如何同时连接,是要创建多个SOCKET吗?
高手!!你们在哪里?
出来指点一下~~!
万分感谢
...全文
1175
14
打赏
收藏
求救~~! TCP连接!一个客户端同时连接多个服务器问题
求救~~! TCP连接!一个客户端同时连接多个服务器问题 现在在动态链接库里要做成一个TCP模块,去连接远端的TCP转485模块(服务器)。 如何同时连接,是要创建多个SOCKET吗? 高手!!你们在哪里? 出来指点一下~~! 万分感谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
abcqian
2012-05-17
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
这个东西我前一阵做了两个,都是作为一个动态库插件挂在主框架下工作的,被主框架触发,方法如下:
不过你的框架如何与动态库交互了,一般动态库都只暴漏一个Init接口用来向主框架注册一系列回调函数。
在以上初始化完成后,肯定注册了一个接口与主框架进行交互,称这个接口叫做on_message,也就是主框架接受到消息,回调每个插件进行处理。另外,提供一个on_create接口供主框架回调来初始化……
[/Quote]
让我理解的蛋疼
abcqian
2012-05-17
打赏
举报
回复
[Quote=引用 11 楼 的回复:]
一个客户端,里面使用多个线程向一个服务器发送不同操作请求.服务器里分别有相应的线程接受操作.处理完毕在想客户端发送处理结果.就是#5说的,客户端也有rece操作.
没听过一个客户端连接多个服务器的.服务器最多一个,端口号也一个.对应的每一个客户端拨同一个端口号.不同客户端通过不同的标识加以区别(客户端的信息可以存放在数据库中).
[/Quote]
谢谢
忘世麒麟
2012-05-16
打赏
举报
回复
一个客户端,里面使用多个线程向一个服务器发送不同操作请求.服务器里分别有相应的线程接受操作.处理完毕在想客户端发送处理结果.就是#5说的,客户端也有rece操作.
没听过一个客户端连接多个服务器的.服务器最多一个,端口号也一个.对应的每一个客户端拨同一个端口号.不同客户端通过不同的标识加以区别(客户端的信息可以存放在数据库中).
abcqian
2012-05-16
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
多线程,一个主listen线程,多个recv线程,非阻塞模式。
如果对多线程,socket通信不熟悉,那还是用一个线程负责listen并且recv吧。阻塞。这样比较简单。
[/Quote]
客户端可以LISTEN?
abcqian
2012-05-16
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
创建多个socket进行连接。
[/Quote]
这个我也想到了 但是觉得很烦
我最后是使用 创建 释放 的方式实现 具体效果测试后才晓得 就是每次用到的时候将IP地址 port 传递到DLL中 我在里面创建socket 处理数据 处理完关闭socket,线程则不关闭
下次使用 如上方法
abcqian
2012-05-16
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
创建多个socket
[/Quote]
谢谢
mars_man
2012-05-15
打赏
举报
回复
TCP是一对一的。
qq120848369
2012-05-14
打赏
举报
回复
这个东西我前一阵做了两个,都是作为一个动态库插件挂在主框架下工作的,被主框架触发,方法如下:
不过你的框架如何与动态库交互了,一般动态库都只暴漏一个Init接口用来向主框架注册一系列回调函数。
在以上初始化完成后,肯定注册了一个接口与主框架进行交互,称这个接口叫做on_message,也就是主框架接受到消息,回调每个插件进行处理。另外,提供一个on_create接口供主框架回调来初始化我们的插件数据结构。
我假设你做的插件是一个proxy模块,也就是将主框架的包通过socket向外转发,那么每次on_message被回调,我们的模块都要转发该包。
我假设你的若干socket是配置文件里配置的若干后端服务器转发message的,那么一个完全异步化的设计是:
on_create回调时:
1,创建插件用的数据结构与必要数据
2,根据配置文件,获得指定的工作线程数量,为每个工作线程创建Pipe和加锁队列
3,启动所有工作线程,每个工作线程epoll监听各自的pipe
on_messsage回调时:
1,RR轮询到某一个工作线程,message加入其队列,向其pipe写1字节。
2,被触发的工作线程拿到message结构体,根据其目的地址创建socket,做非阻塞connect。
3,当非阻塞conenct返回可读或者可写,并且getsockopt SO_ERROR无错时,表明连接成功,可以开始发送mesage,发送结束关闭socket即可。
如果楼主要做长连接,建议一个线程对应一个长连接socket,其他方法基本一致。
不知道楼主能否理解这么高端的东西- -。。。 本人做过http proxy,xmpp proxy,类似的一些东西,信手拈来。。
cobra_chen
2012-05-14
打赏
举报
回复
多线程,一个主listen线程,多个recv线程,非阻塞模式。
如果对多线程,socket通信不熟悉,那还是用一个线程负责listen并且recv吧。阻塞。这样比较简单。
笨笨的小猪
2012-05-14
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
创建多个socket进行连接。
[/Quote]
好像没有别的办法了吧
W170532934
2012-05-14
打赏
举报
回复
创建多个socket进行连接。
ouyh12345
2012-05-14
打赏
举报
回复
远端的服务端是否支持转发服务?如果支持,只需要连接转发服务器
ouyh12345
2012-05-14
打赏
举报
回复
创建多个socket
TCP
基础(一)
背景 在工作中接触到通讯这块比较多,有一次
服务器
出了
问题
,无法正常提供服务,然后面对一大堆关于
tcp
的
问题
,深知自己的不足,所以抽个时间,好好学习一下
tcp
的基础知识。 一、前言
TCP
是一种面向
连接
的、可靠的、基于字节流的传输层通讯协议。
TCP
建立
连接
三次握手,释放
连接
四次挥手。 二、
TCP
建立
连接
、断开
连接
流程讲解 1、
TCP
建立
连接
—三次握手 ①
服务器
绑定好端口,开始监听 ②
客户端
...
Java常见错误总结——
TCP
/IP网络通信
Java常犯错误分析——
TCP
/IP网络通信 1. IP错误、port错误、port被占用 发生场景:两个
客户端
同时
连接
同
一个
服务器
原因分析:
服务器
未开启多线程 相应
客户端
的链接 改正方式:开启多线程 可用 while(true)循环等待
客户端
连接
代码示例: while(true){ java.net.Socket client = server.ac...
问:
TCP
/IP协议栈在内核态的好还是用户态的好
“
TCP
/IP协议栈到底是内核态的好还是用户态的好?”
问题
的根源在于,干嘛非要这么刻意地去区分什么内核态和用户态。引子为了不让本文成为干巴巴的说教,在文章开头,我以
一个
实例分析开始。最近一段时间,我几乎每天深夜都在做一件事,对比m
tcp
,Linux内核协议栈的收包处理和
TCP
新建
连接
的性能,同时还了解了一下腾讯的F-Stack。这里指明,我的m
tcp
使用的是netmap作为底层支撑,而不是DPDK。测试过程中,我确认了Linux内核协议栈的scalable
问题
,并且确认了用户态协议栈是如何解决这个
问题
的。然
计算机网络期末复习题(华南理工mooc习题及解答)
在客户
服务器
(C/S)模型中,客户和
服务器
之间可以直接通信,但是客户与客户之间通常不能直接通信。C/S模型是一种计算模型,其中有
一个
或
多个
服务器
为
多个
客户端
提供服务。
服务器
负责管理共享资源或数据库,并响应用户的请求。
客户端
则向
服务器
发送请求,接收并处理
服务器
返回的响应。在C/S模型中,
客户端
之间的通信通常需要通过
服务器
进行中转。这是因为
服务器
是唯一拥有共享资源或数据库的计算机,并且可以控制对这些资源的访问。
做IP SAN时出现的“
连接
失败”解决!
配置阵列MS2500-G2-12S,提示
连接
失败的解决。
C++ 语言
64,643
社区成员
250,606
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章