VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 712|回复: 9

[交流] 服务器socket udp通讯

[复制链接]
27_avatar_middle
最佳答案
0 
在线会员 发表于 2021-6-27 21:38:36 | 显示全部楼层 |阅读模式
经过测试 udp 客户端可以随时给服务端发消息 服务端不能随时给每个客户端发消息 只能发消息到 收到消息的最近一个客户端
请问有没有解决的思路




上一篇:vc++读写excel获取sheets容器
下一篇:求帮助
31_avatar_middle
最佳答案
48 
在线会员 发表于 2021-6-28 08:20:17 来自手机 | 显示全部楼层
udp 程序服务端和客户端有区别吗?UDP就是指哪打哪的,想要收发自如还得基础扎实。
27_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-6-28 23:00:06 | 显示全部楼层
cpp2019 发表于 2021-6-28 08:20
udp 程序服务端和客户端有区别吗?UDP就是指哪打哪的,想要收发自如还得基础扎实。

区别可大了 部署到服务器 客户端可以通过公网IP随时给服务端发消息 但是服务端通过啥IP随时给客户端发消息?
31_avatar_middle
最佳答案
48 
在线会员 发表于 2021-6-29 21:15:33 | 显示全部楼层
xuantian 发表于 2021-6-28 23:00
区别可大了 部署到服务器 客户端可以通过公网IP随时给服务端发消息 但是服务端通过啥IP随时给客户端发消 ...

UDP程序收发只需要一个socket,也就是说一个UDP通讯程序中只需要继承一个socket即可实现收发消息,即可当做服务端来使用,也可当做客户端来使用,服务端和客户端的区别在哪?

至于你说的需求方案不是不能实现,这就是基础的问题和技术的问题了。
27_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-6-30 21:07:01 | 显示全部楼层
在局域网中 这个是已经实现了
比如 程序A绑定了ip 192.168.1.100 端口1000  程序B绑定了ip 192.168.1.100 端口2000
程序AB均可以通过ip端口或者广播的方式向一程序发消息

在公网中
比如有服务器10.10.10.1 服务端程序绑定到IP 10.10.10.1 端口1000
客户端可以直接发送消息到ip 10.10.10.1 端口1000
但是问题来了
手机A在移动网络中运行了客户端程序A 客户端A可以直接发消息到服务端 服务端能收到消息
手机B在移动网络中运行了客户端程序B 客户端B可以直接发消息到服务端 服务端能收到消息
客户端A向服务端发消息 服务端收到客户端A发来的消息 此时服务端可以发消息给客户端A
然后客户端B向服务端发消息 服务端收到客户端B发来的消息 此时服务端可以发消息给客户端B 但是此时服务端发消息给客户端A 客户端A无法收到消息

那么怎么解决这个问题?尝试过TCP保存每个连接socket的方法,但是无效
27_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-6-30 21:10:19 | 显示全部楼层
cpp2019 发表于 2021-6-29 21:15
UDP程序收发只需要一个socket,也就是说一个UDP通讯程序中只需要继承一个socket即可实现收发消息,即可当 ...


在局域网中 这个是已经实现了
比如 程序A绑定了ip 192.168.1.100 端口1000  程序B绑定了ip 192.168.1.100 端口2000
程序AB均可以通过ip端口或者广播的方式向一程序发消息

在公网中
比如有服务器10.10.10.1 服务端程序绑定到IP 10.10.10.1 端口1000
客户端可以直接发送消息到ip 10.10.10.1 端口1000
但是问题来了
手机A在移动网络中运行了客户端程序A 客户端A可以直接发消息到服务端 服务端能收到消息
手机B在移动网络中运行了客户端程序B 客户端B可以直接发消息到服务端 服务端能收到消息
客户端A向服务端发消息 服务端收到客户端A发来的消息 此时服务端可以发消息给客户端A
然后客户端B向服务端发消息 服务端收到客户端B发来的消息 此时服务端可以发消息给客户端B 但是此时服务端发消息给客户端A 客户端A无法收到消息

那么怎么解决这个问题?尝试过TCP保存每个连接socket的方法,但是无效
31_avatar_middle
最佳答案
48 
在线会员 发表于 2021-6-30 23:52:47 | 显示全部楼层
本帖最后由 cpp2019 于 2021-6-30 23:56 编辑

用TCP都解决不了?站长的教程好好学,VIP有站长亲自指导。

给你个玩具,s.exe可以放到公网服务器上,c.exe是客户端,可以开启多个,这东西很简单,没给源码。

服务器socket udp通讯

服务器socket udp通讯 CS.7z (60.02 KB, 下载次数: 0)
03_avatar_middle
最佳答案
0 
在线会员 发表于 2021-7-3 21:13:17 | 显示全部楼层

驿站越来越好,谢谢老师们的无私奉献
27_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-20 23:36:44 | 显示全部楼层
cpp2019 发表于 2021-6-30 23:52
用TCP都解决不了?站长的教程好好学,VIP有站长亲自指导。

给你个玩具,s.exe可以放到公网服务器上,c.e ...

今天来了点灵感 终于发现了问题 解决了随时发消息的问题
主要是用纯udp的通讯的文献少 一般用的都是tcp
感谢来炸楼 哈哈哈
27_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-20 23:41:17 | 显示全部楼层
xuantian 发表于 2021-7-20 23:36
今天来了点灵感 终于发现了问题 解决了随时发消息的问题
主要是用纯udp的通讯的文献少 一般用的都是tcp
...

服务端和客户端都要重写了 几万行代码服务器socket udp通讯
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-10-17 05:39

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表