现在有服务器A,客户端B、C
长连接:顾名思义,就是连接一旦连上就保持连接状态不关闭,举个例子,B现在要跟C聊天,然后通过服务器A中转后和C连接上了,B完成和C聊天后,这个用于发送消息的SOCKET不关闭而仍然维持连接状态就是长连接(只是举个例子,比如软件考虑到B和C可能过一阵还会聊天)了。
短连接:顾名思义,就是维持时间比较短的连接,在实际中就是该SOCKET当前任务一旦结束就关闭连接。用到上面的例子就是B和C聊完后,SOCKET就关闭了,下次需要聊天的时候重新连接。
关于长连接和短连接以前讨论的人很多,一般认为长连接效率高,因为不需要反复去连接,但是容易堵塞,那就麻烦了,到底丢了多少包都不清楚。而短连接恰好相反。
一般在用的时候,尽可能的SOCKET专用,即发送消息的SOCKET专门发送消息,传文件的SOCKET专门传文件。如果要用长连接,最好在自己的协议上考虑到心跳包,即过一阵发一个心跳包看对方是否有响应来确定是否SOCKET阻塞了,是否掉线了等等。
这个就不需要代码了吧,几句话就通了
我刚刚做了个winSock与采集器的通讯和继电器板卡的通讯,皆成功.注意点:IP地址,端口,协议这三样要准确,发送有二种方式:字符串,二进制串,接收也要对应的.有的通讯卡,返回中包含发送的内容是正常的,也有的板卡无返回的.欢迎分享,转载请注明来源:夏雨云
评论列表(0条)