当前位置: 技术问答>linux和unix
一个关于跨平台UDP通信的问题
来源: 互联网 发布时间:2017-02-10
本文导语: 因为一个嵌入式项目的需要,现在在做上位机PC机(Windows系统)与下位机ARM处理器(linux系统)的UDP通信。我现在已经把windows系统上的UDP发送接收程序调试好了,发送的数据可以接收。然后我在虚拟机(装的是ubuntu系统)上写...
因为一个嵌入式项目的需要,现在在做上位机PC机(Windows系统)与下位机ARM处理器(linux系统)的UDP通信。我现在已经把windows系统上的UDP发送接收程序调试好了,发送的数据可以接收。然后我在虚拟机(装的是ubuntu系统)上写了个接收程序,用Windows上的发送程序发送数据,却总是接收不到。
我感觉发送程序总是卡在sendto函数那里,因为我Dubug的时候输入要发送的数据回车之后Debug就一直卡在那里了,但是我在Windows上跑接收程序的时候,在发送端输入数据回车之后接收程序是回返回一个接收成功的信号的。
我不太清楚Windows与linux通信有没有什么数据格式要转换之类要注意的点存在,我只是很简单的调用socket函数来进行发送与接收。下面是我在Windows下的发送程序UDPClient和在linux下的接收程序UDPServer,很简单的socket调用没有什么别的复杂的东西,查了几天了不知道问题出在什么地方,有没有高手可以帮一下忙,谢谢了
(PS:网络ping过是通的没问题)
在WINDOWS上的UDP发送端程序:
/*
UDP Client
*/
#include
#include
#pragma comment(lib, "ws2_32")
#define SERVER_PORT 9001
#define MAXBUFLEN 1024
int main(int argc, char *argv[])
{
if(argc
我感觉发送程序总是卡在sendto函数那里,因为我Dubug的时候输入要发送的数据回车之后Debug就一直卡在那里了,但是我在Windows上跑接收程序的时候,在发送端输入数据回车之后接收程序是回返回一个接收成功的信号的。
我不太清楚Windows与linux通信有没有什么数据格式要转换之类要注意的点存在,我只是很简单的调用socket函数来进行发送与接收。下面是我在Windows下的发送程序UDPClient和在linux下的接收程序UDPServer,很简单的socket调用没有什么别的复杂的东西,查了几天了不知道问题出在什么地方,有没有高手可以帮一下忙,谢谢了
(PS:网络ping过是通的没问题)
在WINDOWS上的UDP发送端程序:
/*
UDP Client
*/
#include
#include
#pragma comment(lib, "ws2_32")
#define SERVER_PORT 9001
#define MAXBUFLEN 1024
int main(int argc, char *argv[])
{
if(argc