精华内容
下载资源
问答
  • 用UDP数据报发送数据给本机,数据可以发出去,但是服务端(本机)却接收不到任何数据,刚接触网络,请指教! 服务器端: SOCKET server_socket_udp; sockaddr_in server_address_udp,from_address_udp; char ...
    用UDP数据报发送数据给本机,数据可以发出去,但是服务端(本机)却接收不到任何数据,刚接触网络,请指教!
    
    服务器端:
    SOCKET  server_socket_udp;
    sockaddr_in server_address_udp,from_address_udp;
    char server_data[20]="你好";
    server_socket_udp=socket(AF_INET,SOCK_DGRAM,0);
    server_address_udp.sin_family=AF_INET;
    server_address_udp.sin_port=htons(6012);//6000转化为网络字节顺序
    server_address_udp.sin_addr.S_un.S_addr=htons(INADDR_ANY);//将long转化为网络字节顺序 inet_addr("127.0.0.1");
    if(SOCKET_ERROR==bind(server_socket_udp,(sockaddr *)(&server_address_udp),sizeof(server_address_udp)))
    {
       CString str;
       str.Format("绑定Socket失败,错误代码:%d",GetLastError());
       MessageBox(str);
       closesocket(server_socket_udp);
       return;
    }
    int len=sizeof(from_address_udp);
    recvfrom(server_socket_udp,server_data,20,0,(sockaddr *)&(from_address_udp),&len);//但是接收不到数据,程序停在这里


    客户端:
    SOCKET consumer_udp;
    sockaddr_in  server_address_udp1;
    char consumer_data[20];
    consumer_udp=socket(AF_INET,SOCK_DGRAM,0);
    server_address_udp1.sin_family=AF_INET;
    server_address_udp1.sin_port=htons(6012);//199186转化为网络字节顺序
    server_address_udp1.sin_addr.S_un.S_addr=htons(INADDR_BROADCAST);
    sendto(consumer_udp,consumer_data,20,0,(sockaddr *)&server_address_udp1,sizeof(sockaddr));//可以发送成功
    展开全文
  • 串口收不到数据或者收到错误数据 串口乱码总结

    万次阅读 多人点赞 2019-04-28 22:15:03
    1、查看你使用的USB转串口是3.3V的串口还是5V串口,如果发送方使用的是3.3V然后你使用的USB转串口是5V是可以收到数据的但收到的数据都是错误的 2、查看波特率、奇偶校验、停止位等是否设置正确。 3、如果是STM32,...

    1、查看你使用的USB转串口是3.3V的串口还是5V串口,如果发送方使用的是3.3V然后你使用的USB转串口是5V是可以收到数据的但收到的数据都是错误的

    2、查看波特率、奇偶校验、停止位等是否设置正确。

    3、如果是STM32,查看寄存器设置是否正确,时钟是否使能

    4、查看是否将TX接成RX(很可能两根线接反了),

    5、查看线是否是好的,可以换线试试,查看是否存在虚焊现象。特别是TX 、RX 、GND三根线。

    6、查看驱动是否已经安装,如果已经安装也能在设备管理器中查看到,特别注意下有感叹号或者其他的其他异常符号,经常以为自己安装完成了,但其实是安装了错误的驱动,即使是驱动精灵安装的驱动也有时候是错误的。

    7、查看自己的电脑的串口是否被其他程序占用,有时候因为串口正在使用没有断开串口直接拔掉,这样可能造成USB口无法使用串口,这时候可以考虑更好其他USB口或者重新启动电脑试试。

    8、查看是否有干扰信号,特别一些高频信号和电磁信号模拟信等等。

    9、可能串口调试助手是无法使用的,可以换其他的串口调试助手软件试试,我就遇到过,以为程序出问题了,查了半天没有解决,换了个串口调试软件就好了。

    10、查看对方是hex格式发送还是文本格式发送,或者其他格式发送

    11、查看收发是否共GND,如果GND不一样,参考电平不一样那很可能是错误的。

    12、查看串口线是否过长,如果不带屏蔽线的话最好在2米以内(具体数字我不是很清楚,但曾经用过差不多5米的网线做的连接线把电脑搞挂了,表现是电脑鼠标自己在动,我还以为中毒呢)

     

     

    展开全文
  • 电脑的虚拟网卡会拦截广播操作,因为你没有指定一个地址,所以代码正确的情况下,发送不出去或者接收不到,只需要考虑以下两种情况。 1.广播端虚拟网卡没有禁用 2.接收端虚拟网卡没有禁用 有用的话点个收藏吧 ...

    网络调试助手可以互相发送,而你的UDP广播代码却不行
    你是广播 是不会被路由器转发的
    但是在同一个交换机下 是可以收到广播的 还有就是
    电脑的虚拟网卡会拦截广播操作,因为你没有指定一个地址,所以代码正确的情况下,发送不出去或者接收不到,只需要考虑以下两种情况。
    1.广播端虚拟网卡没有禁用
    2.接收端虚拟网卡没有禁用

    有用的话点个收藏吧

    展开全文
  • 但是串口助手给单板发数据,运行在单板的应用程序却收不到数据。 就跟我们有时候打电话,一边可以听到声音,但是另一边听不到对方说话。就好像打电话信号不好,这还要怎么交流啊。 新手往往重点关注的地方是UART...

    1 概述

    linux串口编程说起来很简单,但是新手往往容易掉进一个坑里面。明明驱动程序写的没有问题,且通过应用程序发送数据,能够在串口助手上收到。但是串口助手给单板发数据,运行在单板的应用程序却收不到数据。

    就跟我们有时候打电话,一边可以听到声音,但是另一边听不到对方说话。就好像打电话信号不好,这还要怎么交流啊。

    这里写图片描述

    新手往往重点关注的地方是UART寄存器配置的对不对,GPIO复用对不对。好吧,我也是新手,我也折腾了几个小时。。。当发现这些都没有错的时候,就会怀疑是不是硬件出问题了。在做硬件的小伙伴们确定硬件焊接没问题,以及串口线自发自收都没有问题的时候。我们就要想想是不是我们写错程序了。

    2 tty介绍

    TTY是一个古老的东西。有空再补充。。。

    3 模式更改为RAW模式

    所谓RAW模式,就是可以接收ASCII里面一些特殊字符,如回车换行等。如果不是RAW模式,我们的tty层的程序在串口BUFFER收到数据后,会一直等直到收到回车,才会将收到的一帧数据返回给用户空间。我们的在app里面read函数才会正常返回。

    4 参考代码:

    int set_opt(int fd,int nSpeed,int nBits,char nEvent,int nStop)  
    {  
        struct termios newtio,oldtio;  
        if(tcgetattr(fd,&oldtio)!=0)  
        {  
            perror("error:SetupSerial 3\n");  
            return -1;  
        }  
        bzero(&newtio,sizeof(newtio));  
        //使能串口接收  
        newtio.c_cflag |= CLOCAL | CREAD;  
        newtio.c_cflag &= ~CSIZE;  
    
        newtio.c_lflag &=~ICANON;//原始模式    
    
        //newtio.c_lflag |=ICANON; //标准模式   
    
        //设置串口数据位  
        switch(nBits)  
        {  
            case 7:  
                newtio.c_cflag |= CS7;  
                break;  
            case 8:  
                newtio.c_cflag |=CS8;  
                break;  
        }  
        //设置奇偶校验位  
        switch(nEvent)  
    
        {  
            case 'O':  
                newtio.c_cflag |= PARENB;  
                newtio.c_cflag |= PARODD;  
                newtio.c_iflag |= (INPCK | ISTRIP);  
                break;  
            case 'E':  
                newtio.c_iflag |= (INPCK | ISTRIP);  
                newtio.c_cflag |= PARENB;  
                newtio.c_cflag &= ~PARODD;  
                break;  
            case 'N':  
                newtio.c_cflag &=~PARENB;  
                break;  
        }  
        //设置串口波特率  
        switch(nSpeed)  
        {  
            case 2400:  
                cfsetispeed(&newtio,B2400);  
                cfsetospeed(&newtio,B2400);  
                break;  
            case 4800:  
                cfsetispeed(&newtio,B4800);  
                cfsetospeed(&newtio,B4800);  
                break;  
            case 9600:  
                cfsetispeed(&newtio,B9600);  
                cfsetospeed(&newtio,B9600);  
                break;  
            case 115200:  
                cfsetispeed(&newtio,B115200);  
                cfsetospeed(&newtio,B115200);  
                break;  
            case 460800:  
                cfsetispeed(&newtio,B460800);  
                cfsetospeed(&newtio,B460800);  
                break;  
            default:  
                cfsetispeed(&newtio,B9600);  
                cfsetospeed(&newtio,B9600);  
                break;  
        }  
        //设置停止位  
        if(nStop == 1)  
            newtio.c_cflag &= ~CSTOPB;  
        else if(nStop == 2)  
            newtio.c_cflag |= CSTOPB;  
        newtio.c_cc[VTIME] = 5;  
        newtio.c_cc[VMIN] = 0;  
        tcflush(fd,TCIFLUSH);  
    
        if(tcsetattr(fd,TCSANOW,&newtio)!=0)  
        {  
            perror("com set error\n");  
            return -1;  
        }  
        return 0;  
    }  

    上述代码最关键的一个地方是newtio.c_lflag &=~ICANON;//原始模式,设置为RAW模式。

    参考

    UNIX环境高级编程: 串口模式的配置程序抄自此书。

    展开全文
  • qq发文件为什么显示对方无法接受文件以下文字资料是由(历史新知网www.lishixinzhi.com)编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!qq发文件为什么显示对方无法接受文件最常见的一种是有的人还在...
  • TCP通信接收数据完整的解决方法

    万次阅读 多人点赞 2019-01-23 21:01:40
    一、TCP协议、Socket编程流程 TCP/IP协议及socket封装 套接字的编程流程: 二、Send 和 Recv的基本介绍 ...不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服...
  • Qt 如何发送和接收UDP数据报

    万次阅读 2019-02-17 15:31:41
    在Qt4中,提供了QUdpSocket类,由于udp像tcp,没有连接的概念,所以就没有QUdpServer,监听也是用同一个类,用法如下 #include <QUdpSocket> int main() { QUdpSocket *socket = ...
  • 好了,下面来看一看网卡是如何将包转换成电信号并发送网线中的。网卡驱动从 IP 模块获取包之后,会将其复制网卡内的缓冲区中,然后向MAC 模块发送发送包的命令。接下来就轮 MAC 模块进行工作了。 首先,MAC ...
  • soul聊天状态异常 消息发送失败

    千次阅读 2021-08-12 00:36:01
    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。soul聊天状态异常,消息发送失败的原因及解决方法如下:1、...3、消息显示发送成功,但是对方表示收不到消息,这种情况需要截图反映给客服,...
  • 铁路信号基础知识——信号部分

    万次阅读 多人点赞 2019-06-25 22:01:27
    一.信号 信号:是传递信息的符号。 铁路信号设备是一个总名称,概而言之为信号、联锁、闭塞 铁路信号:是向有关行车和调车...铁路信号按感官的感受方式可分为视觉信号和听觉信号两大类。 视觉信号:是以颜色、形...
  • 学会Zynq(18)TCP发送Hello World(client模式)

    千次阅读 热门讨论 2019-03-24 12:03:52
    本文介绍用TCP发送“Hello World”的实例,讨论程序设计中几个关键的问题。本文撰写思路假设您已经阅读了本系列前几篇与lwIP、UDP相关的文章,重复性语言过多描述。本文TCP工作在client模式。TCP内容较多,后面的...
  • 网络编程的三个重要信号(SIGHUP ,SIGPIPE,SIGURG)

    万次阅读 多人点赞 2018-07-07 16:25:19
    对于信号的介绍,我再前面的一篇博客中做过专门的总结,感兴趣的可以看看。本文主要介绍在网络编程中几个密切相关的函数:SIGUP,SIGPIPE,SIGURG。 SIGHUP信号  在介绍SIGHUP信号之前,先来了解两个概念:进程组...
  • 如果只有「两次握手」,当客户端的 SYN 请求连接在网络中阻塞,客户端没有接收 ACK 报文,就会重新发送 SYN ,由于没有第三次握手,服务器清楚客户端是否收到了自己发送的建立连接的 ACK 确认信号,所以每收到一...
  • 今天编就以联通卡来和大家说说,看看有没有什么办法解决信号差这个问题。联通卡信号不好的原因?首先要排除的,自然就是手机或者SIM卡的故障引起的手机信号强度弱了,排除方法也很简单,把卡放在其他手机或者其他...
  • 大多数程序都有接收拖放文件的功能,即是用鼠标把文件拖放程序窗口上方,符合格式的文件就会自动被程序打开。最近自己对编写的程序增加了一个拖放文件的功能,在 Windows XP、Windows Server 2003 系统上拖放文件...
  • 由于最近在写关于RACSignal底层实现分析的文章,当然也逃了关于冷热信号操作的分析。这篇文章打算分析分析如何从冷信号转成热信号的底层实现。 目录 1.关于冷信号和热信号的概念2.RACSignal热信号3.RACSignal冷...
  • 计算机网络学习整理(1)

    千次阅读 2020-02-28 20:34:25
    接收端传回发送端所发送的 SYN 是为了告诉发送端,我接收的信息确实就是你所发送信号了。 传了 SYN,为啥还要传 ACK 双方通信无误必须是两者互相发送信息都无误。传了 SYN,证明发送接收方的通道没有问题...
  • 信号的传输路径是由两条方向相反的路径构成,一条是驱动路径,由发送端指向接收端;一条是返回路径,由接收端指向发送端。在发送端、传输路径、接收端测得的信号电平,实质上是该信号在驱动路径和返回路径上对应位置...
  • CSMA/CD协议最小帧长的思考

    万次阅读 多人点赞 2016-10-01 22:43:44
    因为冲撞信号发回来需要2t,但是发回来时,下一帧已经发送了,所以,你这个碰撞信号是谁的,搞清。另外,必须认为冲撞了的信号就失效了。不然,你会认为冲撞就冲撞啊,反正数据还能发,实际不是这样。 update: ...
  • 进程间通信(IPC,InterProcess ...IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。
  • android广播监听接收和发送短信

    千次阅读 2016-12-01 17:29:30
    android广播监听接收和发送短信
  • 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中 开辟一块缓冲区,进程A把数据从用户空间拷到内核缓冲区,进程B再从内核缓冲区把数据...
  • 例如,如果我们可以终止进程,则需要向要终止的进程发送信号。 该信号将是SIGTERM,并通过kill或类似命令发送。 在本教程中,我们将检查SIGTERM信号并与SIGKILL信号进行比较。 Linux Kill Process Tutorial With ...
  • 在成千上万的计算机中,为什么一台计算机能够准确着寻找另外一台计算机,并且把数据发送给它呢? 可能很多人都听说过网络通信的 5 层模型,但是可能并不是很清楚为什么需要五层模型,五层模型负责的任务也有可能...
  • 微信下载:1、微信里面貌似有个规则,如果添加同一个好友,连续发送请求数6-8次而堆放一直没有通过验证的时候,系统将不再接受请求,将提示发送失败;如果是被添加进了黑名单,系统直接会提示已被拉入黑名单的。2、你...
  • Linux自定义信号

    千次阅读 2013-11-22 16:06:32
    信号同样是用于进程通信的...信号处理则不同,进程知道什么时候信号会到来,先看一段代码,看看信号的程序: [root@liumengli signal]# cat ./signal_recive1.c  #include "stdio.h" #include "signal.h" #incl
  • SMTP全称是简单邮件传输协议,它专门用来发送邮件用的。Pop全称是邮局协议,是专门用于接收邮件的。我主要是负责如何实现发送邮件功能的。MailSend命名空间是我整个程序的核心。它包括两个类。在SmtpMail的类中包含...
  • 听说另外一个项目组socket开发遇到问题,发送端和接受端数据大小一致。建议他们采用writen的重发机制,以避免信号中断错误。采用后还是有问题。PM让我帮忙研究下。 UNP n年以前看过,很久没做过底层开发,手边...
  • 模拟信号采样与AD转换

    千次阅读 2017-08-02 15:14:40
    大牛奥本海姆的《信号与系统》中是这样描述的: Let x(t) be a band-limited signal with X(jw) = 0 for |w|> wM. Then x(t) is uniquely determined by its samples x(nT),n=1,±1,±2,...,if
  • android短信发送和接受

    千次阅读 2016-09-19 13:42:19
    短信发送发短信第一件事是在manifest文件中添加权限<uses-permission android:name="android.permission.SEND_SMS" /> 第一方法:调用系统发短信的应用 /** * 调起系统功能发短信 * @param phoneNumber * @...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,784
精华内容 17,913
关键字:

发送小信号对方收不到