一边是一台电脑,一边是通信版,协议是UDP,如何连起来
一边是一台电脑,一边是通信版,协议是UDP,怎么连起来?
我要做这样一个程序出来,一边是我的电脑,一边是个通信板,用网线连起来。
通信板那边会时时传数据,协议是UDP;
用VC6.0写个程序,将通信板那边传过来的数据收到。谁知道怎么写?最好有代码。怎么每隔几秒钟接收一次数据啊?
------解决方案--------------------
UDP协议不晓得,最近才学到Socket 貌似UDP比TCP简单点 点对点就直接传输了 TCP必须要服务器端
每隔几秒传输的话 你可以写个定时器或者另外开条线程都可以
------解决方案--------------------
谁知道能不能实现,需要那些东西,有没有高手啊?
------解决方案--------------------
最简单的实现:
#pragma comment(lib,"ws2_32.lib")
#include <WINSOCK2.H>
#include <stdio.h>
int main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested, &wsaData);
if( err != 0)
{
return -1;
}
if(LOBYTE(wsaData.wVersion) != 1 ||
HIBYTE(wsaData.wVersion) != 1) //验证版本
{
WSACleanup();
return -1;
}
SOCKET sockSrv = socket(AF_INET, SOCK_DGRAM, 0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //接受任意地址
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000); //监听的端口
bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR)); //绑定socket
char recvBuf[100]; //接收数据的缓冲区
SOCKADDR_IN addrClient; //收到的数据来源
int len = sizeof(SOCKADDR);
while(1)
{
recvfrom(sockSrv, recvBuf, 100, 0, (SOCKADDR*)&addrClient, &len);
//DoSomething
}
closesocket(sockSrv);
WSACleanup();
return 0;
}
你可以学习一下windows网络编程,然后可以根据需要选择利用select,overlapped IO等方式实现更好的处理。
------解决方案--------------------
谷歌一下,你想知道的东西太多了。
我要做这样一个程序出来,一边是我的电脑,一边是个通信板,用网线连起来。
通信板那边会时时传数据,协议是UDP;
用VC6.0写个程序,将通信板那边传过来的数据收到。谁知道怎么写?最好有代码。怎么每隔几秒钟接收一次数据啊?
------解决方案--------------------
UDP协议不晓得,最近才学到Socket 貌似UDP比TCP简单点 点对点就直接传输了 TCP必须要服务器端
每隔几秒传输的话 你可以写个定时器或者另外开条线程都可以
------解决方案--------------------
谁知道能不能实现,需要那些东西,有没有高手啊?
------解决方案--------------------
最简单的实现:
#pragma comment(lib,"ws2_32.lib")
#include <WINSOCK2.H>
#include <stdio.h>
int main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested, &wsaData);
if( err != 0)
{
return -1;
}
if(LOBYTE(wsaData.wVersion) != 1 ||
HIBYTE(wsaData.wVersion) != 1) //验证版本
{
WSACleanup();
return -1;
}
SOCKET sockSrv = socket(AF_INET, SOCK_DGRAM, 0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //接受任意地址
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000); //监听的端口
bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR)); //绑定socket
char recvBuf[100]; //接收数据的缓冲区
SOCKADDR_IN addrClient; //收到的数据来源
int len = sizeof(SOCKADDR);
while(1)
{
recvfrom(sockSrv, recvBuf, 100, 0, (SOCKADDR*)&addrClient, &len);
//DoSomething
}
closesocket(sockSrv);
WSACleanup();
return 0;
}
你可以学习一下windows网络编程,然后可以根据需要选择利用select,overlapped IO等方式实现更好的处理。
------解决方案--------------------
谷歌一下,你想知道的东西太多了。