基于UDP的socket编程 c udp网络编程

先来介绍一下UDP是什么UDP(User DataProtocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。下面是它与TCP/IP的比较//server端的程序#include
#include
#include
struct pointindex
{
int firstDemension;
int secondDemension;
int thirdDemension;
int forthDemension;
int value;
char fileName[10];
};
typedef struct pointindex PointIndex;
BOOL InitWinsock();
void main()
{
SOCKET socket1;
InitWinsock();
int length=sizeof(PointIndex);
struct sockaddr_in local;
struct sockaddr_in from;
int fromlen =sizeof(from);
local.sin_family=AF_INET;
local.sin_port=htons(1000); ///监听端口
local.sin_addr.s_addr=inet_addr("192.168.1.102");///本机
socket1=socket(AF_INET,SOCK_DGRAM,0);
bind(socket1,(struct sockaddr*)&local,sizeoflocal);
char buffer[60]={0};
while (1)
{
printf("Recieve message: ");
if(recvfrom(socket1,buffer,length,0,(structsockaddr*)&from,&fromlen)!=SOCKET_ERROR)
{
PointIndex*ptest = (PointIndex *)buffer;
printf("%sn",buffer);
printf("Sendmessage : ");
gets(buffer);
sendto(socket1,buffer,length,0,(structsockaddr*)&from,fromlen);
}
Sleep(500);
}closesocket(socket1);
}BOOL InitWinsock()
{
int Error;
WORD VersionRequested;
WSADATA WsaData;
VersionRequested=MAKEWORD(2,2);
Error=WSAStartup(VersionRequested,&WsaData);//启动WinSock2
if(Error!=0)
{
return FALSE;
}
else
{
if(LOBYTE(WsaData.wVersion)!=2||HIBYTE(WsaData.wHighVersion)!=2)
{
WSACleanup();
returnFALSE;
}}
return TRUE;
}
//client端的程序#include
#include
#include
struct pointindex
{
int firstDemension;
int secondDemension;
int thirdDemension;
int forthDemension;
int value;
char fileName[10];
};
typedef struct pointindex PointIndex;
BOOL InitWinsock();
void main()
{
int length=0;
SOCKET socket1;
PointIndex point;
InitWinsock();
struct sockaddr_in server;
int len =sizeof(server);
server.sin_family=AF_INET;
server.sin_port=htons(1000);///server的监听端口
基于UDP的socket编程 c udp网络编程
server.sin_addr.s_addr=inet_addr("192.168.1.102");///server的地址
socket1=socket(AF_INET,SOCK_DGRAM,0);
while (1)
{
point.firstDemension=1;
point.secondDemension=2;
point.thirdDemension=3;
point.forthDemension=4;
point.value=0;
strcpy(point.fileName,"test");PointIndex *ppoint =&point;
length=sizeof(PointIndex);
char *buffer =(char*)(ppoint);
printf("Send message: ");
gets(buffer);if(sendto(socket1,buffer,length,0,(structsockaddr*)&server,len)!=SOCKET_ERROR)
{
if(recvfrom(socket1,buffer,length,0,(structsockaddr*)&server,&len)!=SOCKET_ERROR)
printf("Recievemessage : %sn",buffer);
}
}
closesocket(socket1);
}BOOL InitWinsock()
{
int Error;
WORD VersionRequested;
WSADATA WsaData;
VersionRequested=MAKEWORD(2,2);
Error=WSAStartup(VersionRequested,&WsaData);//启动WinSock2
if(Error!=0)
{
return FALSE;
}
else
{
if(LOBYTE(WsaData.wVersion)!=2||HIBYTE(WsaData.wHighVersion)!=2)
{
WSACleanup();
returnFALSE;
}}
return TRUE;
}

  

爱华网本文地址 » http://www.aihuau.com/a/25101017/365203.html

更多阅读

移动的wlan怎么用 CMCC网络怎么用 cmcc wlan 密码

移动的wlan怎么用 CMCC网络怎么用——简介现如今无线网络的覆盖面积越来越大,人们越来越感觉无线网络连接的重要性。当我们使用手机或者笔记本电脑开启WLAN开关的时候,如果可以搜索到CMCC网络的信号,我们是可以通过连接到CMCC网络来无

转载 我的20年流行歌曲的回忆:2000—2008网络时代之一

原文地址:我的20年流行歌曲的回忆:2000—2008网络时代之一作者:天下吾师进入新时代以来,流行乐坛开始复苏(但远远无法与极盛时期相提并论),主要表现在:歌星更多,风格更多样,创作者众多。这一时期,世俗力量参与进来,网络音乐逐渐盛行,影视歌曲衰

基于 ARM 的远程视频监控系统 乐橙远程视频监控系统

这些天参考网上的代码,完成了这个嵌入式远程视频监控系统。系统组成:USB 视频采集模块、数据处理模块、视频播放模块。其中 USB 视频采集模块要解决两个问题,一个是摄像头驱动问题,另一个就是怎么样用 v4l 采集数据的问题。数据处理模块

基于标准的课程设计:开发表现性评价

朱伟强* 崔允漷**摘 要:国家颁布的课程标准,作为一种政策力量,规范着课程的实践。新课程提出了建立发展性评价的理念,课程设计和教学实践要求用评价来促进学习,评价设计先于教学实施。本文主要讨论设计基于标准的课程需要思考的第二个问

声明:《基于UDP的socket编程 c udp网络编程》为网友孤单少年分享!如侵犯到您的合法权益请联系我们删除