299 Star 2.3K Fork 659

GVP若汝棋茗 / TouchSocket

 / 详情

建议TcpClient能增加同步接收函数

已完成
创建于  
2024-02-19 14:18

你的功能建议是否和某个问题相关?

由于我控制仪器比较多,其中一些是发个查询指令然后读个结果,所以同步接收模式就很必要了。

你希望看到什么解决方案?

目前我注意到接收都是异步模式,我希望能增加同步接收函数,就像C#自带Socket库中的readstring函数一样。

你考虑过哪些替代方案?

库中可以加个属性用来设置当前使用是同步接收还是异步接收。然后再增加几个同步读取(接收)函数。

你有其他上下文或截图吗?

这样,我就可以使用一个库解决多种应用了,主要是能同时在程序中就使用一套Socket和多种模式仪器服务端(查询模式、状态广播模式)通讯了。

意向参与贡献

  • 我有意向参与具体功能的开发实现并将代码贡献回到上游社区

评论 (7)

chwqdky 创建了任务
chwqdky 添加了
 
enhancement
标签
展开全部操作日志

感谢您的反馈!

你可能需要的是发送数据然后同步接收?

https://touchsocket.net/docs/current/tcpwaitingclient

对,是发送数据然后同步接收。我先看下,能不能满足我的要求。

若汝棋茗 任务状态待办的 修改为进行中

输入图片说明输入图片说明

请看图片,调试助手在我发送“*IDN?\n”时返回一个字符串;而使用例子程序时,弹出一个任务取消的提示,“A task was canceled”。

注意转义\n是换行符,所以直接用demo没有解析到转义字符,服务端没能正确解析

问题找到了。奇怪透顶,直接发"*IDN?\n"不行,代码中是this.textBox2.Text.ToUTF8Bytes()。
改成发"*IDN?",并且代码改为(this.textBox2.Text+"\n").ToUTF8Bytes()。就可以了。

输入图片说明

我的问题已解决。使用这个方法可以同步接收,原来正常使用是异步接收。感谢。
注:悬赏我不知还需要我在网页上操作不,我觉得你可以直接领取了。如果需要我点击什么,请提醒我。

chwqdky 任务状态进行中 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(3)
8553710 rrqm home 1708678943 7941935 diego2098 1678261580
C#
1
https://gitee.com/RRQM_Home/TouchSocket.git
git@gitee.com:RRQM_Home/TouchSocket.git
RRQM_Home
TouchSocket
TouchSocket

搜索帮助