急!c++ socket 转发问题,求大家帮忙解决下

C++语言 码拜 8年前 (2016-04-12) 2407次浏览
问题描述:
通信方式:
客户端<–>中转服务器<–>服务器(中转和客户端都在一台电脑上,本人是利用本地转发的);
具体连接过程如下:
,客户端本地打开一个端口123监听,玩家启动游戏,游戏连接本地端口123进行登陆,本人客户端收到123端口的数据之后再转发给服务器。服务收到数据之后,做出响应,并返回一个数据给本地客户端,这个时候,客户端再将服务器返回的数据转发到游戏,

本人现在可以实现从客户端到服务器的通信,也能实现服务器到客户端的通信,(一个游戏客户端)
但是有个问题,假如本人多开一个游戏客户端就不行了,应该怎么办?
本人现在尝试的方法是在中转服务器上,每次客户端连接一次,本人就开辟一个线程,但是却不管用,应该怎么办呢 ?
解决方案

5

建议使用多进程。
注意不要使用相同的端口。

5

本人觉的从总体上看没什么问题,每个连接开一个线程也没问题,假如程序没有逻辑错误完全可以实现你的想法。
所以还要细心调试一下,看看哪里错了。

5

123端口应该不行吧.很可能已经被占用了!(知名端口的范围是从0-1023 ,你应该笔名使用这个范围的端口).

5

服务器应该是可以并行处理,没接到一个客户端的请求,应该判断,这个请求能否属于一个新客户端,假设是的话应该开辟一个新进程或线程处理.每个客户端的请求都应该带上标记本人所属客户端的唯一性,方便服务端处理.

5

引用:
Quote: 引用:

建议使用多进程。
注意不要使用相同的端口。

原因是客户要求,只能多线程处理,不能多进程

用多线程比多进程更简单啊。道理是一样的。
本人说的标记客户端是指:通过客户端发送上来的信息,标记客户端的唯一性。例如,能否每次客户端发送的信息都带有本人的ID或唯一的用户名之类的。

10

在链接过来的时候取得IP地址,再根据IP地址区分,这样试过吗?
还是在同一台电脑上的2个客户端?

5

问问做客户端的,应该怎么样区分它们。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明急!c++ socket 转发问题,求大家帮忙解决下
喜欢 (0)
[1034331897@qq.com]
分享 (0)