问下关于socket的问题

问题描述

例如发送了三条信息111111111111122222222222223333333333333接收的时候会不会出现111111111111122222222222223333333333333连接在一个字符串了还有丢包的问题是不是会出现11111111111113333333333333中间的2部分丢了又或者是1里面取了部分111,2里面又取了部分222,3里面有获取了部分333变成了111222333的问题了啊

解决方案

解决方案二:
定义好包头包尾进行合包判断处理啊
解决方案三:
会不会出现111111111111122222222222223333333333333连接在一个字符串会。是不是会出现11111111111113333333333333中间的2部分丢了不会。...变成了111222333的问题不会。
解决方案四:
引用2楼Forty2的回复:

会不会出现111111111111122222222222223333333333333连接在一个字符串会。是不是会出现11111111111113333333333333中间的2部分丢了不会。...变成了111222333的问题不会。

那这种111111111111122222222222223333333333333的问题要怎么获取长度再获取值呢
解决方案五:
引用1楼SomethingJack的回复:

定义好包头包尾进行合包判断处理啊

比如定义头是BEGIN。尾是END。这样的类似字符吗
解决方案六:
前提是你要使用tcp
解决方案七:
1.使用TCP/IP协议的话,是绝对不会有丢包的问题的。2.在接收端,接到的全是Bytes,跟发送端发送几次没有关系,如何解析,是你自己要做的事。一般情况下,你需要对你的消息有一个定义,比如,前多少个byte表示一些信息,记录一下消息的长度等。接收的时候先接收前多少个字节,解析一下,然后再接收具体的消息内容。
解决方案八:
最多只会接收不全,就是没接收完成,可以统一定义一个int64放在最前面,用来识别总发送长度
解决方案九:
引用6楼ShelleyLiu0415的回复:

1.使用TCP/IP协议的话,是绝对不会有丢包的问题的。2.在接收端,接到的全是Bytes,跟发送端发送几次没有关系,如何解析,是你自己要做的事。一般情况下,你需要对你的消息有一个定义,比如,前多少个byte表示一些信息,记录一下消息的长度等。接收的时候先接收前多少个字节,解析一下,然后再接收具体的消息内容。

明白了,目前定义的是000006ABCDEF。前面6位是长度要取的字符长度。而字符就是ABCDEF。先取前面6位得到长度,根据长度取后面的字符数据

时间: 2024-09-27 09:21:34

问下关于socket的问题的相关文章

问下nodejs如何把传过来的socket原封不动的传送给另一个URL

问题描述 问下nodejs如何把传过来的socket原封不动的传送给另一个URL,在线等各位大神回答~

socket wince-wince下的socket通讯问题

问题描述 wince下的socket通讯问题 刚刚接触socket通讯,很多问题不明白. 这是个简单例子,我是在这个基础上改的 #include #pragma comment( lib, "Ws2.lib" ) void TestSocketServer( void ) { WSADATA wsaData; if (WSAStartup(0x0202, &wsaData)!=0) { return; } SOCKET sockSrv=socket(AF_INET,SOCK_S

PHP在WIN下操作socket

TCP/UDP Socket调试工具   PHP在WIN下操作socket最好用命令行运行程序,一般可以用于大文件的上传 要建立一个简单的服务,如果不考虑性能方面的问题,比如并发100 左右的服务,可以简单的用 Socket + Pcntl(linux).来实现 1.php加入环境变量,开启socket扩展 server端 Java代码   <?php   //确保在连接客户端时不会超时   set_time_limit(0);      $ip = '127.0.0.1';   $port =

php 集成环境-我想问下php的集成环境的php版本和安装的php程序版本之间怎么样才能使用呢?

问题描述 我想问下php的集成环境的php版本和安装的php程序版本之间怎么样才能使用呢? 我想问下php的集成环境的php版本和安装的php程序版本之间怎么样才能正常使用呢?就是说哪个版本高一些 解决方案 可以参考下这篇文章http://blog.csdn.net/oneym/article/details/48050487 解决方案二: wamp集成环境下升级php版本集成的PHP环境的使用Linux环境Nginx安装多版本PHP

unix下编写socket程序的一般步骤

在unix下写socket程序可能是最方便,你只要掌握其一般步骤,就可以松的写出面向传输层的应用. 1.理解几个常用的socket函数 #include #include int socket(int domain,int type,int portocol); domain指所使用的协议族(family)可以为AF_UNIX和AF_INET,一般只用AF_INET(指Internet)type指所用的传输类型,可以为SOCK_STERAM(面向连接的TCP),和SOCK_DGRAM(面向无连接

子程序建立socket崩溃-安卓下建立socket就崩溃,分到子线程仍然不行,求助啊

问题描述 安卓下建立socket就崩溃,分到子线程仍然不行,求助啊 原代码如下,如果我不用BUTTON去触发的话是可以建立SOCKET的,但是用上BUTTON,把建立SOCKET的方法放到子线程中,仍然exception会显示不能再主线程中使用网络操作,真心求解为什么,看了2天了,刚学JAVA,不太理解. package com.example.xlguang.wifi; import android.os.Bundle; import android.os.Handler; import an

我在做windows下的蓝牙4.0通信编程,想买一个适配器,想问下对适配器有要求吗

问题描述 我在做windows下的蓝牙4.0通信编程,想买一个适配器,想问下对适配器有要求吗 还有程序是怎么与适配器联系的呀,初学,有过开发经验的大神帮帮我吧,急急急,拜托啦 解决方案 没什么要求,京东上30块钱的足够了.注意看清楚支持bluetooth4.0就可以.蓝牙的开发除了配对,其它和网络类似.很简单的.会有一个ip地址.不需要你额外的代码.

音频-问下关于android编程的问题····声波测距方面的

问题描述 问下关于android编程的问题····声波测距方面的 请问下android的大神···我想用手机发送8--9HZ的音频(Beep信号).然后用另外一个手机(也是android的接收···)问下能不能实现啊····求大神指点我其实是想实现手机与手机之间的测距··想用声波的方式···请问下有没有可能实现? 解决方案 个人觉得可以实现,要考虑手机如何接收到音频信号,A手机发信号如果确保B手机收到,收到时间如何确定的,知道时间和速度求距离应该可以的.android bonjour这个新技术也

代码转换-问下内容里面的字符转换是什么转换

问题描述 问下内容里面的字符转换是什么转换 转换前:FA161D8A27D01BF7转换后:SkdWNJAdOddZN1QxUMjGNx== 转换前:206DBDB0FBD04BE转换后:UJ=3SdjdQJBGQkQxNdjA 转换前:AF19CEA16A211563转换后:QMYWOMNAQtd3QtiWUtM3Ux== 转换前:6968EBF2198A2C转换后:NJk3OdwFSJiWOtgBUkU= 转换前:859C6E544566A18转换后:OEM6QqzANtQ1NtY3Qtd2