社区
网络编程
帖子详情
socket数据传输问题?
axiang80
2006-02-15 02:45:59
有个问题,想请教大家:
我的服务器与客户端相连,要实时传送数据。服务器端会不断的发数据给客户端,客户端不仅要接受数据,写入数据库;还要不断的从另一张表中取出数据,不断的发给服务器端。这时怎么处理?要用两个socket吗?具体怎么做,要用多线程吗?
...全文
347
18
打赏
收藏
socket数据传输问题?
有个问题,想请教大家: 我的服务器与客户端相连,要实时传送数据。服务器端会不断的发数据给客户端,客户端不仅要接受数据,写入数据库;还要不断的从另一张表中取出数据,不断的发给服务器端。这时怎么处理?要用两个socket吗?具体怎么做,要用多线程吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
thirdlee
2006-02-18
打赏
举报
回复
加一句, 也不需要额外开线程,就再在接收线程里就可以再发送.
thirdlee
2006-02-18
打赏
举报
回复
socket是双工通信,建立连接后两端都是既可以发又可以收的.不需要额外再建socket连接.
pripor
2006-02-18
打赏
举报
回复
数据量不是很大的话用异步io即可
charles_y
2006-02-18
打赏
举报
回复
使用CSocket很简单,可以这样处理:
收和写:
1 收:
使用CSocket的OnReceive(),不需要自己开线程(当然实际上是使用了线程的),把收到的收据写到缓冲区中。
2 写:
把缓冲区的数据写到数据库中,这需要自己开一个新线程。
关键是要处理好缓冲区的同步。
读和发:使用一个线程即可,没有必要再使用缓冲区,使用发数据缓冲区的目的一般是为了防止发的速度跟不上读取数据的速度,但你这个程序根本没有必要,因为读取的数据源自己完全可以控制。所以可以读完就发,发完再读。
至于Socket,一个就行了,收和发不会互相干扰。当然也可以使用两个,这个不是关键。
Hylas
2006-02-18
打赏
举报
回复
这个问题应该与socket方式无关
Hylas
2006-02-18
打赏
举报
回复
多线程 + 队列
不难处理
axiang80
2006-02-17
打赏
举报
回复
to baodi_z(冷冷的太阳)
谢谢!
是的,服务器和客户端数据没有先后顺序的要求,只要求实时能发给彼此。服务器和客户端收到后入库。客户端收到信息后,不要应答,服务器收到后要应答。
一般开发这样的程序都是用winsock api来做,而不用CSock吗?不知有否跟我这项目类似的例程参考一下?
charles_y
2006-02-16
打赏
举报
回复
这样做应该没有问题,用缓冲区的话需要考虑一下读写的同步。
还有的就是数据库的同步问题,不过你既然读写的不是一个表,同步问题就不需要考虑了
zdleek
2006-02-16
打赏
举报
回复
服务器和客户端的数据有没有先后顺序的要求
如果没有就可以用两个连接,这样处理通信部分比较简单
多线程是必须的,否则那个效率肯定达不到应用的要求
对于客户端来说
至少要3个线程
一个收, 一写数据, 一个发
axiang80
2006-02-15
打赏
举报
回复
服务器: 从数据库中取数据放入发送缓冲,socket发送。
客户端:接受数据,写入接受缓冲区,一线程负责将缓冲数据写入数据库表中。一个线程从数据库另一张表中取数据放入发送缓冲区,socket发送。
问题是发送和接受之间的协调?是否有冲突?这样思路对吗?
charles_y
2006-02-15
打赏
举报
回复
一个socket就够了,用两个线程,一个收一个发
axiang80
2006-02-15
打赏
举报
回复
to alen_ghl(东方求*)
频繁,是指数据可能很多,紧接着发送。服务器不断从自己的数据库一张表中取数据发给客户端,这样客户端要不断的接受数据,而客户端取数据库中另一张表的数据,实时发给服务器端。会影响吗?
网络环境是专线,数据库中的表每条记示并不大。
对,socket不很了解。主要我的思路还不很清晰。
alen_ghl
2006-02-15
打赏
举报
回复
你说的很频繁能否具体点
如果数据量特别大可以用2个socket(还有网速怎么样?)
否则一个就可以搞定
axiang80
2006-02-15
打赏
举报
回复
to xx_jj()
异步io,能讲讲吗?或者给个例子?谢谢!
axiang80
2006-02-15
打赏
举报
回复
“服务器端会不断的发数据给客户端,客户端不仅要接受数据,写入数据库;还要不断的从另一张表中取出数据,不断的发给服务器端。”
服务器端发数据给客户端时,不要求回应,但很频繁。
客户端发数据给服务器端,很频繁,不要求回应。
再者,请说具体点。
xx_jj
2006-02-15
打赏
举报
回复
看你对数据实事性的要求了 一般要多线程
不过我以前做过一个用的异步io
joinclear
2006-02-15
打赏
举报
回复
可以再开个线程
striking
2006-02-15
打赏
举报
回复
一个socket应该可以, socket的每端每发送一次数据就接收一次数据.如果没有数据到达,就再次发送数据.
具体谁先发,谁先收你自己定就可以了
Socket
编程快速入门
本课程将理本课程将理啊 论结合实践,带你从零开始,系统学习
Socket
编程技术,让
Socket
的学习不再那么零散与难以掌握,同时会提炼出
Socket
网络传输的核心思想与构架,并带你踩坑出坑,增加你的分析与处理
问题
的啊aas...
网络
数据传输
socket
和http优缺点
1
数据传输
方式1.1
Socket
传输的定义和其特点 所谓
socket
通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行
数据传输
,主要有UDP和TCP两个协议。
Socket
处于网络协议的传输层。 UDP协议:广播式...
c++
socket
数据传输
总结
总结:不同数据的
socket
传输和接收说明
TCP数据包发送的过程及实际
问题
解决 判断
socket
是否断开 解决
socket
数据传输
数据丢失的
问题
先来简单描述一下场景,...这是篇文章是在看了今日头条后,回想起来自己曾今遇到过的一个关于
socket
套接字发送数据的
问题
,当时解决后并没有记录下来,现在正好看到了与之息息相关的知识,于是打算简单的谈一下~...
Socket
数据传输
的可能存在
问题
及解决方案
粘包并非
数据传输
层的粘包,是数据处理逻辑层面上的粘包,也就是网络上各种包的处理。比如接收的包不是想要的包,或者接收包的顺序发生错误等 消息不完整性 TCP不会发生数据不完整的情况,一旦出现一定是TCP停止...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章