socket的方式选择

来源:百度知道 编辑:UC知道 时间:2024/06/03 21:43:00
要实现从远程计算机接收数据,并将数据解析并存入数据库。远程计算机的数据每分钟发送一次。请问该选择怎样的socket连接方式好,比如是异步还是同步?有没有类似的代码可供参考?

刚刚接触socket,不了解。谢谢大家帮忙~
如果用tcp协议进行传输,会不会出现两次发送的数据一起接到的情况,或者一次发送的数据用了两次才接到?如果会出现这样的情况,那么接收的数据怎样保证一段段是分开的?

光写客户端就异步,收到FD_READ,就去接收...

这种代码很多,百度一下就OK.

哀悼一下CSDN
==================================
这种粘包的情况,几率很少,可以忽略。
你可以设置buf大小,一般8K就行了。

实际说上面的也是白说,你考虑的应该不是粘包的问题.应该是下面的。

一般接收的buf,都是和服务器规定好格式大小,
服务器发8k,你就接8k,当然你也可以分几次接,或者之到recv返回0.
recv返回0还要按情况来处理,真的是0还是连接断了。
接收完按规定的格式取就行了.

如果你的客户数目不是很多,用同步就可以。
用一个线程等待连接,当有新的连接发起的时候,创建一个线程来处理这个链接请求。

如果你的客户数量很大(1000个以上),那么要用iocp。

TCP是一种可靠的协议,它会自动保证数据包时有序而且没重复的,所以你不用担心数据的接收问题。