如何用.Net程序“托管”C++程序的Socket通信

runerback 2016-07-13 04:09:24
目标C++程序是用WinSock2进行网络通信的,我想再外面加一层转发,让C++程序的网络数据通过我指定的服务器端进行转发,该怎么做?
具体点就是,有些游戏支持局域网联机,但是只要不在同一个局域网内就无法连接起来,于是就有虚拟局域网之类的技术。其中有一种是通过程序(游戏盒子或对战平台)来启动游戏,这样游戏的网络数据就会通过指定的服务器转发,间接连起来联机的游戏玩家。
有个游戏玩的人不多,我看了程序信息,里面用的是C++ Socket,但是我很想知道上述的转发功能是如何实现的。因为某个游戏平台已经可以实现其局域网联机功能了,而我想自己写个游戏盒子,虽然不用于商业用途(没钱搞服务器),但是想知道原理。毕竟是商业机密(我猜),所以哪位大神大概介绍下思路就行了。
既然说到这里,我还有个问题就是,这种实现是否会因为游戏的不同而不同,因为我看到有对应于单个游戏的“区”,但是也有同时支持多款游戏的“区”,如果确实有通用的方法,那实现难度是不是就不太了呢。
我已经用C++(WinSock2)写好了一个简单的控制台小程序,客户端发送服务端接受,现在就差让数据去其他地方兜一圈了。
...全文
171 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
runerback 2016-07-14
  • 打赏
  • 举报
回复
以后发这类问题只给20
runerback 2016-07-13
  • 打赏
  • 举报
回复
果然商业机密么 我要英语再好点就去stackoverflow提问了……
runerback 2016-07-13
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
所谓的转发不就是这样子么?
socket1.Receive(buffer);
socket2.Send(buffer);
但前提是我不能去修改C++的程序
Poopaye 2016-07-13
  • 打赏
  • 举报
回复
所谓的转发不就是这样子么?
socket1.Receive(buffer);
socket2.Send(buffer);

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧