socket 客户端异步问题

问题描述

我开始简单的写了一个socket接收服务端给我推出的数据。用了一个timer控件不停的接收。这样出现了一个问题,就是时差。会导致接到的数据不是一条完整的数据。很郁闷最后决定用异步。在网上查了的资料,感觉不是我需要的。我想要的就是,我发送一条指令给服务端,服务端,开始不停的给我推送数据(服务端不用考虑)。我这怎么用异步方式接收呢?如何判断接收的数据完整性。

解决方案

解决方案二:
这里的异步是让你另外开启一个线程用于接收数据
解决方案三:
"会导致接到的数据不是一条完整的数据"你这个是使用TCP方式吧,这种方式需要你的程序将接收到的字节流写入缓冲区后,用识别算法去取数据,而不能象数据报那样简单地取一次就是完整的数据.

时间: 2025-01-02 02:32:28

socket 客户端异步问题的相关文章

Socket编程 (异步通讯,解决Udp丢包) - Part4

原文http://www.cnblogs.com/zengqinglei/archive/2013/05/15/3079007.html Socket编程 (异步通讯,解决Udp丢包) 对于基于socket的udp协议通讯,丢包问题大家应该都见怪不怪了,但我们仍然希望在通讯方面使用Udp协议通讯,因为它即时,消耗资源 少,响应迅速,灵活性强无需向Tcp那样建立连接消耗很长的时间等等很有优势的理由让我们对Udp通讯寄予了厚望.但它也存在一个不好的特点,经常丢包是 时常发生的事.可能各位大侠已经有了

socket客户端有几种发送消息到服务端的方式,服务端应该怎么取出这个值

问题描述 socket客户端有几种发送消息到服务端的方式,服务端应该怎么取出这个值 场景,我有一个服务端,客户端是超级网口USR-K3的TCPClient.K3发送消息给我服务端时,已经跟我建立连接,服务端已经看到了它的IP和端口,但是在取出K3发过来的值时,显示为"null".求大神告知是不是我取值的方法和K3放值得方法不一样才取不出值. 解决方案 public void run() { try { // 采用循环不断从Socket中读取客户端发送过来的数据 while (true)

android-ServerSocket服务端如何向多个Socket客户端发送同一个数据?

问题描述 ServerSocket服务端如何向多个Socket客户端发送同一个数据? 利用线程是多个Socket客户端连接到ServerSocket服务端,但是怎么让ServerSocket服务端向所有的客户端发送同一个数据? 解决方案 你可以发送广播信息(udp),或者你通过服务器拿到所有的客户端的IP地址,然后循环发送同一个数据.(我是学java的,不知道对你有帮助没?)

server-java socket客户端和Python socket客户端的不同?高C币!!

问题描述 java socket客户端和Python socket客户端的不同?高C币!! 我们接的项目有一个java写的server,我只有它的文档,并且用java已经实现,但是现在要为 python实现,用java实现的代码: public static void main(String[] args) throws WindException, SendException, RecvException{ String host="172.22.128.16"; int port=

socket客户端定时向服务器发数据

问题描述 socket客户端定时向服务器发数据 想实现一个socket定时发送数据的功能.不用接收.数据从本地计算机的文件中读取. 然后每隔比如200ms发送一百字节.直到把文件读完.读取文件用什么函数好fread 和fwrite 还是CFILE类好.定时器定义在什么地方.怎么实现定时向固定端口发送数据. 解决方案 您要是用多线程,可以用Sleep函数,如果不是用多线程,用windows消息,你要看用哪个类的OnTimer函数,就要在那个类中用SetTimer 解决方案二: 读取文件可以用fre

socket客户端-php socket 客户端的多次通信

问题描述 php socket 客户端的多次通信 想用php做一个socket 客户端,可以实现一次连接,然后多次给服务端发消息.具体的想法是这样的: 做一个页面,这个页面上有个按钮和消息栏,点一下按钮就可以把消息栏的内容发送给服务端,再点一下再发送,而不需要重新连接,只是页面打开时跟服务端连接上. 这个要怎么实现呀?请各位大牛帮帮忙,小妹先谢过了. 附上socket类的代码. <?php /** 定义ip,和端口 */ define ( 'PHP_SOCKET_PORT', '6000' );

服务器-socket客户端发送消息问题

问题描述 socket客户端发送消息问题 现在需求是两个客户端和一个服务端,一个客户端向服务端发送消息,然后服务端再将消息发送给第二个客户端,都是长连接,第一次发送没问题,但是再点发送第二个客户端就收不到消息了,服务器也收不到(下面服务端代码) 解决方案 通过这个来看的话,你的服务端实际上也就是相当于一个网关的效果,用来转发消息的,这种情况下,如果你服务端都没收到消息的话,你可以自己调试看看是否两者之间的连接已经断开 或者说两者之间的数据包解包不正确导致没处理你的流程. 解决方案二: java

io流-socket 客户端读取服务端发送的 序列化流 报错

问题描述 socket 客户端读取服务端发送的 序列化流 报错 客户端 服务端 请大神指教,实在找不到原因了,对这块儿也不是很熟 解决方案 socket调用了一次getInputStream时,但又需要把这个socket的相关信息作为参数传递给别的对象时,应注意:不用直接把socket传过去,应该把对应的ObjectInputStream或ObjectOutputStream对象传递过去. 解决方案二: 直接读写Object,使用java自己的序列化不可以吗?

opc-OPC客户端异步通讯初始化

问题描述 OPC客户端异步通讯初始化 CComObject<COPCDataCallback>* pCOPCDataCallback; // Pointer to Callback Object // Create Instance of Callback Object using an ATL template CComObject<COPCDataCallback>::CreateInstance(&pCOPCDataCallback); 编译正常,但是执行到这里_pA