#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网络编程](http://img.aihuau.com/images/02111102/02055040t01ea6443c271494d23.jpg)
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;
}